1. 程式人生 > >創建多個動作:

創建多個動作:

處理 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每個動作攔截分配。

創建多個動作: