2011-05-26 42 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>