創建多個動作:
阿新 • • 發佈:2018-08-19
處理 public erro str ssd 進入 解決 頁面 嘗試
右鍵點擊項目名稱,並單擊“導出”> WAR文件創建一個WAR文件。然後這WAR部署在Tomcat的webapps目錄下。最後啟動Tomcat服務器,並嘗試訪問URL http://localhost:8080/HelloWorldStruts2/index.jsp。這會給你以下畫面:
讓我們一起進入一個“SECRET”的話,你應該看到下面的頁面:
現在輸入任何文字以外的“SECRET”,你應該看到下面的頁面:
創建多個動作:
我們通常會定義一個以上的行動,以處理不同的請求,向用戶提供不同的URL,因此,你可以定義不同的類定義如下:
package com.yiibai.struts2; import com.opensymphony.xwork2.ActionSupport; class MyAction extends ActionSupport{ public static String GOOD = SUCCESS; public static String BAD = ERROR; } public class HelloWorld extends ActionSupport{ ... public String execute() { if ("SECRET".equals(name)) return MyAction.GOOD; return MyAction.BAD; } ... } public class SomeOtherClass extends ActionSupport{ ... public String execute() { return MyAction.GOOD; } ... }
您將在struts.xml文件中配置這些操作如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> struts> <constant name="struts.devMode" value="true" /> <package name="helloworld" extends="struts-default"> <action name="hello" class="com.yiibai.struts2.HelloWorld" method="execute"> <result name="success">/HelloWorld.jsp</result> <result name="error">/AccessDenied.jsp</result> </action> <action name="something" class="com.yiibai.struts2.SomeOtherClass" method="execute"> <result name="success">/Something.jsp</result> <result name="error">/AccessDenied.jsp</result> </action> </package> </struts>
在上述假設的例子中,你可以看到操作的結果被復制SUCCESS 和ERROR 。為了解決這個問題,我們建議您創建一個類,它包含的結果的結果。
Struts 2 攔截器:
攔截器是作為Servlet過濾器或JDK的Proxy類的概念上是相同的。攔截器允許橫切功能單獨實現動作以及框架。想要使用攔截器,可以實現如下:
-
Providing preprocessing logic before the action is called.
-
Providing postprocessing logic after the action is called.
-
Catching exceptions so that alternate processing can be performed.
使用攔截器在Struts2框架提供的功能很多,例如包括異常處理,文件上傳,生命周期回調和驗證等。事實上,Struts2的基地很多其攔截功能上,這不是不可能有7或8每個動作攔截分配。
創建多個動作: