我正在使用spring 3框架来开发我的Web应用程序。我必须将我的外部javascript文件与我的jsp表单链接。为此,我使用脚本标记如下:
<script type="text/javascript" src="test.js"></script>
我的web.xml映射如下:
`<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>`
但我得到的错误是这样的:
2014年3月13日下午4:54:01 org.springframework.web.servlet.DispatcherServlet noHandlerFound 警告:在&gt;名为'spring'的DispatcherServlet中找不到带有URI [/Project/test.js]的HTTP请求的映射
这是我的工作区结构。项目&GT;&GT;&的WebContent GT;&GT; JSP
在jsp文件夹中,我拥有所有jsp和test.js文件。
我曾经尝试过 - 更改web.xml配置 - 尝试使用test.js获取上下文路径
<script type="text/javascript" src="${pageContext.servletContext.contextPath}/test.js"></script>
在webcontent中创建了一个目录并粘贴了test.js文件以检查
<script type="text/javascript" src="${pageContext.servletContext.contextPath}/jsp/test.js"></script>
我已经提到了很多相关的帖子,但直到现在我都无法解决它。请有同样问题的人帮忙解决这个问题。
修改 在这里,我将添加我的spring-servlet.xml以供参考。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:annotation-config />
<context:component-scan base-package="com.inet.test.spring3.controller" />
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
答案 0 :(得分:0)
我在你的web.xml中看到了这个
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
因此,只要您域中的网址以.js结尾,就会将其映射到您的
org.springframework.web.servlet.DispatcherServlet
我在想,为什么你需要映射* .js?有什么缘故吗?您可以尝试删除该servlet-mapping标记并重试吗?
答案 1 :(得分:0)
您真的不必定义servlet-mapping以包含外部java脚本文件。
删除
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
替换为
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
配置 @RequestMapping(&#34; /mycontroller.html")
通过提供 / ,您配置了spring以处理进入应用程序的所有请求。在这种情况下,您没有.js文件的正确处理程序。
通过提供 *。执行,您将spring配置为仅处理仅以.do结尾的请求