Struts2接收參數的幾種方式

jopen 11年前發布 | 11K 次閱讀 Struts2 Web框架

一、用Action屬性

在action里定義要接收的參數,并提供相應的set和get方法。

如:

public class LoginAction extends ActionSupport {
    private String username;
    private String password;

    //對應的get set方法
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String execute() {
        // TODO Auto-generated method stub
        System.out.println("username = "+username);
        System.out.println("password = "+password);
        return SUCCESS;
    }
}

<form action="login" method="post">
        用戶名:<input type="text" name="username"><br/>
        密 碼:<input type="password" name="password"><br/>
        <input type="submit" value="提交">
    </form>

二、使用DomainModel

如果Action中屬性過多,則可以Model保存為一個對象,并提供get和set

Model類

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

 

Action類

public class LoginAction extends ActionSupport {
    private User user;
    public String execute() {
        // TODO Auto-generated method stub
        System.out.println("username = "+user.getUsername());
        System.out.println("password = "+user.getPassword());
        return SUCCESS;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
}

 

JSP

<form action="login" method="post">
        用戶名:<input type="text" name="user.username"><br/>
        密 碼:<input type="password" name="user.password"><br/>
        <input type="submit" value="提交">
    </form>


 

三、使用ModelDriven(模型驅動)

使用模型驅動模式時,Acton必須實現ModelDriven接口,實現該接口則必須實現getModel()方法,該方法用于把Action和與之對應的Model實例關聯起來。

Model類同DomainModel

Action類

public class LoginAction extends ActionSupport implements ModelDriven<User> {
    private User user = new User();   //需實例化
    public String execute() {
        // TODO Auto-generated method stub
        System.out.println("username = "+user.getUsername());
        System.out.println("password = "+user.getPassword());
        return SUCCESS;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public User getModel() {
        // TODO Auto-generated method stub
        return user;
    }
}

 

JSP

<form action="login" method="post">
        <!-- 屬性可以為 對象.XXX 也可以直接為XXX  則前提Action中要自己實例化Model對象 -->
        用戶名:<input type="text" name="user.username"><br/>
        密 碼:<input type="password" name="password"><br/>
        <input type="submit" value="提交">
    </form>


 

四、使用request接收參數

此方法和傳統的JSP頁面接收參數一樣,用request.getParameter("")方法。

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!