[spring] [jsp] css文件问题

时间:2011-02-23 07:25:25

标签: java jsp spring-mvc

我的JSP页面上的.css文件有问题。

我的页面如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

...
<link href="test.css" rel="stylesheet" type="text/css">
...

<body>

<div id="header">....

当我在JBoss5.1上部署我的应用程序时,得到一条警告消息:

WARN [PageNotFound]找不到名为“appTest1”的DispatcherServlet中带有URI [/appTest1-web/test.css]的HTTP请求的映射

有人知道为什么吗?

ADDED

<?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>appTest1</display-name>


    <servlet>
        <servlet-name>appTest1</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

    <welcome-file-list>
        <welcome-file>
            index.jsp
    </welcome-file>
    </welcome-file-list>

</web-app>

3 个答案:

答案 0 :(得分:2)

您用来调用此页面的基本URL:/ appTest1是偶然的吗?

我假设您只是将此页面/控制器放在/ appTest1下,因此当它在页面上查找任何资源时(例如您的css,任何图像,js等),它会在“/ appTest1 / your_resource”下查找< / p>

也许包含你的控制器的类有类似@RequestMapping(“appTest1”)的东西?或许这是一个JBoss工件(如果是这样,我不是JBoss的人,所以不能在那里提出想法)。

在任何情况下,您的CSS文件都应该使用“../test.css”或静态引用来适当引用,例如:“/ static / css / test.css”,我选择后者。

顺便说一句,在春天,我为非动态内容配置了静态目录:

<mvc:resources mapping="/public/**" location="/public/"/>

大型网站还会考虑将静态内容放在一个单独的域名下,例如static.mydomain.com或mycontentdomain.net,以避免cookie与静态内容一起传递。

希望所有这些能帮助你指明正确的方向。

答案 1 :(得分:0)

似乎您的DispatcherServlet正在尝试处理test.css。检查您的web.xml以查看*或.css请求是否定向到您的DispatcherServlet。你应该寻找下面的东西。确保将url-pattern限制为要将其定向到调度程序servlet的扩展名。

<servlet-mapping>
  <servlet>dispatcher</servlet>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

答案 2 :(得分:0)

我认为你在xml的其他地方犯了错误,但在更高级的重定向中你可以使用UrlRewrite过滤器http://www.tuckey.org/urlrewrite/