struts2有三種接收參數的方式:
1、Action屬性
2、Domain Model
3、ModelDriven
login.jsp頁面:
<body> <form action="loginAction.action" method="post" > 用戶名:<input type="text" name="username"/> 密碼:<input type="password" name="password"/> <input type="submit" value="login" /> </form> </body>
1、Action屬性方法:
通過表單的username和action屬性username直接對應傳遞過來。
public class LoginAction extends ActionSupport{ private String username; private String password; public String login(){ System.out.println(username); //... return SUCCESS; } 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; } }
2、通過Domain Model方法:
先建立User類,有username和password兩個屬性。
(1)login.jsp頁面要修改name屬性,才能和action中代碼對應
<form action="loginAction.action" method="post" > 用戶名:<input type="text" name="user.username"/> 密碼:<input type="password" name="user.password"/> <input type="submit" value="login" /> </form>
(2)loginAction.java類,user和表單中的user對應:
public class LoginAction extends ActionSupport{ private User user; public String login(){ System.out.println(user.getUsername()); //... return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
3、ModelDriven方法:
(1)login.jsp頁面,稍微改動name屬性
用戶名:<input type="text" name="username"/> 密碼:<input type="password" name="password"/>
(2)LoginAction.java類,要實現ModelDriven類,泛型爲User。聲明user對象時要實例化,在Domain Model方法中不用。
public class LoginAction extends ActionSupport implements ModelDriven<User>{ private User user=new User(); public String login(){ System.out.println(user.getUsername()); //... return SUCCESS; } @Override public User getModel() { return user; } }