我有一个struts 2应用程序。版本2.2.3。我的问题是应用程序无法加载javascript文件。我有一个jsp文件,顶部有
<%@ 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>
我的文件位于以下目录
struts2tutorial/static/script/jquery
在萤火虫中我看到以下网址
<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
答案 0 :(得分:2)
除非您专门配置了您的操作扩展程序以匹配所有内容,否则您根本不需要/ static或<s:url/>
内容。假设脚本目录位于WAR文件/爆炸目录中,这就足够了:
<script type="text/javascript" src="${pageContext.request.contextPath}/script/jquery/jquery-1.6.min.js"></script>
答案 1 :(得分:0)
将javascript文件放在struts2tutorial / static / script / jquery中并不一定意味着将应用程序部署到服务器时使用的路径。检查该路径最终会在服务器上映射到何处。
答案 2 :(得分: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>
答案 3 :(得分:0)
对我来说问题出在我的web.xml中。 你必须添加&#34; / struts / *&#34;到您的过滤器模式,因为js文件不是真正的文件。我认为即使struts2-config-brower插件没有检测到它,这也是网址背后的struts动作。
<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>