外部文件(image,css,js)无法在Struts2中加载

时间:2012-08-13 04:50:51

标签: jsp struts struts2

我想问为什么我的外部css / js没有加载到我的jsp中。 我的struts.xml内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value=""/> 

<package name="default" namespace="/" extends="struts-default">

    <default-action-ref name="home" />

    <action name="home">
        <result name="success">index.jsp</result>
    </action>

</package>  

</struts>

我的web.xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       version="2.5">

<display-name>Test</display-name>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

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

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

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

<error-page>
    <error-code>404</error-code>
    <location>error404.jsp</location>
</error-page>

</web-app>

我使用此代码将我的css加载到我的jsp中

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

我也尝试使用此代码

<link rel="stylesheet" type="text/css" href="<s:url value="/style/css/style.css"/>"/>

甚至,当我想在我的jsp

上显示图像时会出现错误
<img src="<s:url value="/style/images/icon/car.png"/>" />

这是什么问题,是否是此代码的原因(web.xml)

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

感谢您的回复。

4 个答案:

答案 0 :(得分:2)

原因只是因为我的struts.xml中的代码

<constant name="struts.action.extension" value=""/> 

当我删除它时,一切正常。对不起,谢谢你

答案 1 :(得分:0)

可以肯定这是路径问题。您可以使用Firebug with Network来查看浏览器尝试加载的确切URL。之后,您将能够更正css URL。当然,你不能使用insite标签。

答案 2 :(得分:0)

您的过滤器阻止了这些图片,CSS

答案 3 :(得分:0)

您的外部文件夹不在Web服务器的根目录中;因此它无法识别它,那么你必须添加它