maven搭建web工程时目录结构疑惑

谁用了我的英文名 2016-01-24 02:49:17
您好,我查阅多方资料后发现,maven规定的资源配置路径大约长这个样子:
src/
main/
java
resources
webApp/
WEB-INF
根据解释,web方面的资源都应该放在webApp下,然后在WEB-INF下有个web.xml和传统web工程一样.
然后资源配置文件应该放在resources目录下,java源码放在java目录下.

然而在一些"快速搭建简单SpringMVC+maven工程"的应用实例中,dispatcher-servlet.xml这个配置文件都被放在了webApp/WEB-INF目录下,这令我很疑惑,这个xml不属于配置文件吗?它为什么不放在resources下?
是否意味着spring集成hibernate之类的分配置文件也需要放在WEB-INF目录下呢?

除此之外,个人希望将jsp文件和媒体资源区分在不同目录下,这应该怎么做呢?
...全文
1211 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuteng1 2016-01-25
  • 打赏
  • 举报
回复
最保险的做法还是用maven命令自动生成web项目简单快捷,方便
tianfang 2016-01-25
  • 打赏
  • 举报
回复
http://maven.apache.org/plugins/maven-war-plugin/usage.html 看看这个就清楚了 maven官方文档 war的项目目录结构和war包目录结构
  • 打赏
  • 举报
回复
引用 6 楼 xuteng1 的回复:
最保险的做法还是用maven命令自动生成web项目简单快捷,方便
本来就是自动生成=_= 但是项目资源路径是自己写的啊
Intboy 2016-01-25
  • 打赏
  • 举报
回复
web-inf下的东西好像不可以随便访问,为了安全
  • 打赏
  • 举报
回复
在配置了init-param之后解决了此问题.
新的问题是SpringMVC没有扫描到我的Controller

    <!-- 添加注解驱动 -->  
<mvc:annotation-driven />
<!-- 默认扫描的包路径 -->
<context:component-scan base-package="pers.jassor.struct.controller" use-default-filters="true">

</context:component-scan>

package pers.jassor.struct.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/struct/front")
public class FrontController {
static {
System.out.println("Controller has inited");
}

@RequestMapping("index")
public String testIndex(Model model) {
model.addAttribute("myName", "Jassor");
return "test/index";
}
}

呼,我还是自己先研究一下
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
应该放在 web.xml
  <!-- 读取spring配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:conf/spring.xml;
            classpath:conf/spring-mybatis.xml
        </param-value>
    </context-param>
非常感谢!我试着理解一下
tony4geek 2016-01-24
  • 打赏
  • 举报
回复
应该放在 web.xml
  <!-- 读取spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/spring.xml;
classpath:conf/spring-mybatis.xml
</param-value>
</context-param>
  • 打赏
  • 举报
回复

  <servlet>  
    <servlet-name>dispatcher</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>  
  </servlet>  
  <!-- 设置dispatchservlet的匹配模式,通过把dispatchservlet映射到/,默认servlet会处理所有的请求,包括静态资源 -->  
  <servlet-mapping>  
    <servlet-name>dispatcher</servlet-name>  
    <url-pattern>/</url-pattern>  
  </servlet-mapping>
如上,web.xml中根本没有涉及配置文件路径的配置,它直接指向了springMVC的jar包. 然后jar包在加载的时候主动在WEB-INF下寻找配置文件
引用 1 楼 rui888 的回复:
这个没有硬性规定吧。只要你xml里面路径配置对,能够找到就行。
tony4geek 2016-01-24
  • 打赏
  • 举报
回复
这个没有硬性规定吧。只要你xml里面路径配置对,能够找到就行。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧