使用spring将JS文件添加到JSP文件时获取404

时间:2012-06-22 06:46:00

标签: javascript jsp spring-mvc

我是Spring MVC的新手,我正在尝试在JSP中“包含”一个JS文件。

我的文件夹结构是:

webapp
- WEB-INF
- scripts
- META-INF
- - jsp
- - - myFile.jsp

我正在尝试使用以下代码在myFile.jsp中的scripts文件夹中包含一个js文件:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highstock Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

        <script type="text/javascript" src="<c:url value="/scripts/1.js" />"></script>


        <script type="text/javascript">
            $(function()
            {...

我正在尝试使用1.js中的代码。

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>Spring3-Hibernate</display-name>
    <welcome-file-list>
        <welcome-file>list.html</welcome-file>
    </welcome-file-list>

    <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>

    <!--<context-param>-->
        <!--<param-name>contextConfigLocation</param-name>-->
        <!--<param-value>/WEB-INF/applicationContext.xml</param-value>-->
    <!--</context-param>-->

    <!--<listener>-->
        <!--<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>-->
    <!--</listener>-->



</web-app>

问题是,当点击所需的页面时,JSP会加载但是我在firebug中获得404,因为浏览器无法访问1.js. (我已经检查过,文件在那里:)

任何建议都会有所帮助, 感谢

1 个答案:

答案 0 :(得分:0)

你让控制器处理你的所有要求:

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

所以你的1.js和所有其他文件将转到spring servlet调度程序。并且您没有此URL的映射:控制器或视图解析器或静态资源映射。