外部javascript无法使用spring

时间:2014-03-13 12:11:34

标签: javascript spring-mvc

我正在使用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>
  • 尝试在不同路径中粘贴test.js文件
  • 在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>     

2 个答案:

答案 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结尾的请求