struts2的處理方式和action實現方式
1.屬性驅動
jsp頁面:
<form action="register" method="post">
用戶名:<input type="text" name="name" /><br>
密碼:<input type="password" name="pwd" /><br>
年齡:<input type="text" name="age" /><br>
郵箱:<input type="text" name="email" /><br>
<input type="submit" value="提交" />
</form>
action代碼:
public class Login extends ActionSupport{
private String name;
private String pwd;
@Override
public String execute() throws Exception {
if ("admin".equals(name)&&"123".equals(pwd)) {
return "success";
} else {
return "fail";
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
2.對驅動象
jsp頁面:
<form action="register" method="post">
用戶名:<input type="text" name="user.name" /><br>
密碼:<input type="password" name="user.pwd" /><br>
年齡:<input type="text" name="user.age" /><br>
郵箱:<input type="text" name="user.email" /><br>
<input type="submit" value="提交" />
</form>
action類:
public class Login extends ActionSupport{
private User user; //註冊
public String register(){
System.out.println(user);
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
userBean類:
public class User {
private String name;
private String pwd;
private int age;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
3.模式驅動
jsp頁面:
<form action="register" method="post">
用戶名:<input type="text" name="name" /><br>
密碼:<input type="password" name="pwd" /><br>
年齡:<input type="text" name="age" /><br>
郵箱:<input type="text" name="email" /><br>
<input type="submit" value="提交" />
</form>
action:
import com.opensymphony.xwork2.ModelDriven;
public class Login extends ActionSupport{
public class UserDrivenAction implements ModelDriven<User>{
private User user = new User(); //註冊
public String register(){
System.out.println(user);
return SUCCESS;
}
public User getModel() {
return user;
}
public User getUser() {
return user;
}public void setUser(User user) {
this.user = user;
}
}
}
uesrBean類:
public class User {
private String name;
private String pwd;
private int age;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
4.定義一個pojo類
好處:自定義一個普通的 java 類即可,不具有侵入型
public class PojoAction {
public String execute(){
System.out.println("pojo action");
return "success";
}
}
5.實現Action接口
好處:使得我們編寫的代碼更加規範
public class InterfaceAction implements Action{
public String execute() throws Exception {
System.out.println("interface action");
return SUCCESS;
}
}
6.繼承ActionSupport類
好處:可以繼承一些 ActionSuport 實現功能,如:驗證;官方推薦使用
public class ExtendsAction extends ActionSupport{
@Override
public String execute() throws Exception {
System.out.println("extends action");
return SUCCESS;
}
}