先描述一下我遇到的问题:
新建一个普通的web项目project1和一个maven web项目project2(引入了ssm框架),project1的webcontent如图一所示,project2的webapp如图二所示,其webapp的内容是拷贝的project1的webContent下的.
图1 project1
图2 project2
ps: webapp是maven管理的项目,WebContent是普通的动态web项目.本质上没区别。
访问project1下的Index.jsp能正常访问,但project2下的Index.jsp始终无法找到easyui下的文件。
解决办法参考此网址得到解决:点击打开链接。具体解决办法如下:
web.xml中添加下列代码(这段代码放在springMvc前后好像并没有多大影响):
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
同时对project2中的index.jsp文件做如下修改
修改前:
<script type="text/javascript" src="jquery-easyui-1.5.4.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery-easyui-1.5.4.2/jquery.easyui.min.js"></script>
<script type="text/javascript" src="jquery-easyui-1.5.4.2/locale/easyui-lang-zh_CN.js"></script>
<link rel="stylesheet" href="jquery-easyui-1.5.4.2/themes/default/easyui.css" type="text/css" />
<link rel="stylesheet" href="jquery-easyui-1.5.4.2/themes/icon.css" type="text/css" />
修改后:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
<script type="text/javascript" src="<%=basePath%>jquery-easyui-1.5.4.2/jquery.min.js"></script>
<script type="text/javascript" src="<%=basePath%>jquery-easyui-1.5.4.2/jquery.easyui.min.js"></script>
<script type="text/javascript" src="<%=basePath%>jquery-easyui-1.5.4.2/locale/easyui-lang-zh_CN.js"></script>
<link rel="stylesheet" type="text/css" href="<%=basePath%>jquery-easyui-1.5.4.2/themes/icon.css">
<link rel="stylesheet" type="text/css" href="<%=basePath%>jquery-easyui-1.5.4.2/themes/default/easyui.css">
其中:
request.getContextPath()//得到工程名
request.getScheme() //返回当前链接使用的协议;比如,一般应用返回http;SSL返回https;
request.getServerName()://就是获取你的网站的域名,如果是在本地的话就localhost //request.getServerPort():就是端口号
最终问题得到了解决,但为什么这样解决,原因还不是很了解,对于一个准备快正式工作的程序媛来说,路还很长啊。等弄明白问什么这样解决后,会再来更新博客的。