2011-05-26 120 views
1

我有一个struts 2应用程序。版本2.2.3。我的问题是,该应用程序无法加载JavaScript文件。我已在顶部struts2 jsp文件无法加载javascript

<%@ taglib prefix="s" uri="/struts-tags" %> 

<html> 
<head> 
    <title>Ajax</title> 
    <script type="text/javascript" src=" <s:url value="/static/script/jquery/jquery-1.6.min.js" includeParams="false"/>" ></script> 
    <script type="text/javascript" src=" <s:url value="/static/script/jquery/jquery-ui-1.8.12.custom.min.js" includeParams="false"/>" ></script> 
</head> 

关注我的文件都位于一个jsp文件中的下列目录

struts2tutorial/static/script/jquery 

在Firebug我看到下面的网址

<script src=" /struts2tutorial/static/script/jquery/jquery-1.6.min.js" type="text/javascript"> 

如果我在浏览器上执行以下操作。我找不到404文件。不知道是我做错了

http://localhost:8010/struts2tutorial/static/script/jquery/jquery-1.6.min.js 

回答

2

下面的代码除非您特别配置您的行动扩展到匹配的一切,你不应该需要/静态或所有东西都是<s:url/>。假设脚本目录在您的WAR文件/分解目录中,这就足够了:

<script type="text/javascript" src="${pageContext.request.contextPath}/script/jquery/jquery-1.6.min.js"></script> 
0

请辞struts2tutorial /静态/脚本/ jQuery的JavaScript文件并不意味着这就是当你将应用程序部署到服务器则使用的路径。检查路径最终在服务器上映射到的位置。

0

尝试

http://localhost:8010/static/script/jquery/jquery-1.6.min.js 

在地址栏在你的JSP

<script type="text/javascript" src=" <s:url value="static/script/jquery/jquery-1.6.min.js" includeParams="false"/>" ></script> 
0

对我来说,问题出在我的web.xml中。 您必须将“/ struts/*”添加到您的过滤器模式,因为js文件不是真正的文件。我认为这是一个支持url的struts动作,即使它没有被struts2-config-brower插件检测到。

<filter> 
<filter-name>struts2</filter-name> 
<filter-class> 
     org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 
    </filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>*.action</url-pattern> 
    <url-pattern>/struts/*</url-pattern> 
</filter-mapping>