[英]Using Struts2 Tags in Enterprise Application
我創建了一個帶有 EJB 模塊的企業應用程序。 但我還沒有發起網絡戰爭。
然后我創建了一個 Struts2 web,並將其添加到企業應用程序中。
沒關系。 如果我使用 HTML 標簽,但是當我使用 Struts2 標簽時,它會拋出異常:
這里:
“HTTP 狀態 500 - 內部服務器錯誤
輸入異常報告
消息內部服務器錯誤
說明服務器遇到內部錯誤,無法完成此請求。
例外
org.apache.jasper.JasperException:
找不到 Struts 調度程序。
這通常是由於使用沒有關聯過濾器的 Struts 標簽造成的。
Struts 標簽僅在請求通過其 servlet 過濾器時可用,該過濾器初始化此標簽所需的 Struts 調度程序。 - [未知位置] 根本原因
找不到 Struts 調度程序。 這通常是由於使用沒有關聯過濾器的 Struts 標簽造成的。
Struts 標簽僅在請求通過其 servlet 過濾器時可用,該過濾器初始化此標簽所需的 Struts 調度程序。
輸入異常報告
消息內部服務器錯誤
說明服務器遇到內部錯誤,無法完成此請求。
例外
org.apache.jasper.JasperException:
找不到 Struts 調度程序。
這通常是由於使用沒有關聯過濾器的 Struts 標簽造成的。 Struts 標簽僅在請求通過其 servlet 過濾器時可用,該過濾器初始化此標簽所需的 Struts 調度程序。 - [未知位置] 根本原因
找不到 Struts 調度程序。 這通常是由於使用沒有關聯過濾器的 Struts 標簽造成的。
Struts 標簽僅在請求通過其 servlet 過濾器時可用,該過濾器初始化此標簽所需的 Struts 調度程序。
錯誤清楚地表明
這通常是由於使用了沒有關聯過濾器的 Struts 標簽造成的
這意味着其中有一個 JSP 和 struts 標簽,但是過濾器不使用這個 JSP,因為它可能是一個歡迎文件,即index.jsp
,錯誤代碼文件,即404.jsp
,在web.xml
配置web.xml
在涉及映射到資源的任何過濾器或 servlet 之前,這些資源由 Web 服務器處理。
通常歡迎文件包含一個重定向代碼到一個有效的動作,然后分派一個可以有 Struts 標簽的 JSP。
不要直接在您的應用程序中使用 JSP,而應使用操作。
異常清楚地說明了問題。
要解析Struts
標簽,您需要通過web.xml
初始化Struts Filter class
。
<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>/*</url-pattern>
</filter-mapping>
我遇到了同樣的問題,這就是我解決它的方法:
1 - 確保 web.xml 中的歡迎文件不是帶有 struts 標簽的文件。
因此,創建一個頁面 index.jsp,將其添加到 web.xml 中,如下所示:
<welcome-file-list>
<welcome-file>/vues/index.jsp</welcome-file>
</welcome-file-list>
並且 index.jsp 應該只有一個代碼來將用戶重定向到具有 struts 標記的實際索引頁面。
<%
response.sendRedirect(response.encodeRedirectURL(request.getContextPath()) + "/index.action");
%>
index.action 是一個沒有類的操作,它的結果是將您引導到實際的索引頁面,因此在 struts.xml 中,您將擁有以下內容:
<action name="index">
<result>jspPages/index-logged-out.jsp</result>
</action>
您需要在 web.xml 中配置 struts 默認過濾器調度程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.