寫Action的三種方法


Action類似於servlet,在用戶對瀏覽器輸入url訪問的時候充當控制器的角色。它在訪問時產生,執行execute()之后就銷毀了。

寫Action是代理事務,它實現的三種方式是: (1)POJO類

                     (2)繼承ActionSupport類

                     (3)實現Action接口

 

POJO類

public class ActionPrint {

    public String execute(){
        System.out.println("ActionPrint execute!");
        return "success";
    }
}

 

繼承ActionSupport類

import com.opensymphony.xwork2.ActionSupport;

public class ActionInputCheck extends ActionSupport{
    private int a;
    private double b;
    private char c;
    private String d;
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public double getB() {
        return b;
    }
    public void setB(double b) {
        this.b = b;
    }
    public char getC() {
        return c;
    }
    public void setC(char c) {
        this.c = c;
    }
    public String getD() {
        return d;
    }
    public void setD(String d) {
        this.d = d;
    }
    public String execute(){
        
        return SUCCESS;
    }
    public void validate(){
        if(a<0)
            this.addActionError("d不能小於0");
        
        
    }
    
}

 

實現Action接口

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven;

import Beans.User;

public class MDriven implements Action,ModelDriven<User>{

    private User user=new User();
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    @Override
    public User getModel() {
        // TODO Auto-generated method stub
            
        return user;
    }

    @Override
    public String execute() throws Exception {
        ActionContext context=ActionContext.getContext();
        context.getSession().put("username", user.getUsername());
        return SUCCESS;
    }

}

 

ModelDriven接口是讓javabean的實現和Action分離,Action只用扮演好控制器的角色就好,javabean是在Model層的東東,這樣比較符合MVC的設計模式。

 

寫了Action之后相應加上struts.xml的配置

           </action>
           <action name="InputCheck" class="StrutsFund.ActionInputCheck">
               <result name="success">/output.jsp</result>
           </action>
           <action name="MDriven" class="StrutsFund.MDriven">
               <result name="success">/login_success.jsp</result>
           </action>
           <action name="print" class="StrutsFund.ActionPrint">
               <result name="success">/index.jsp</result>
           </action>

 

訪問的時候就在網址欄中輸入:http://localhost:8080/項目名/ActionName

 

struts.properties配置文件

該文件定義了struts2框架的大量屬性。只要將該文件放在web應用的classes下,struts2框架就會自動加載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM