我们知道,action在web开发中起到了控制器的作用,通过接收客户端传来的参数,执行不同的模块才实现操作,所以说接收参数是很重要的一环,只有接收前端的参数,才能执行数据库的操作等后台业务逻辑,那么就开始一一展示这三种方法吧(只用看action类的编写即可)
1第一种方式:UserAction.java
package com.bjsxt.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String name;
private int age;
public String add() {
System.out.println("name=" + name);
System.out.println("age=" + age);
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在UserAction.java中定义action的属性和所对应的方法,用来接收前端的参数,这是最简单最直观的,但是前提是知道前端传过来的参数是什么,有什么,灵活性不够,所以有了第二种方法:
1UserAction.java代码为
package com.bjsxt.struts2.user.action;
import com.bjsxt.struts2.user.model.User;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private User user;
//private UserDTO userDTO;
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
UserDTO.java代码为:
package com.bjsxt.struts2.user.dto;
public class UserDTO {
private String name;
private String password;
private String confirmingPassword;
}
User.java代码为:
package com.bjsxt.struts2.user.model;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
这种方法将接收参数的步骤分开写,UserDTO中定义属性,User中定义属性的方法,在action中通过import引入两个类,实现数据的接收。这种方法是我工作中第一次接触的,原来感觉这种方式特别麻烦,为什么要分开写,后来慢慢理解,这样不仅降低程序的耦合性,对程序的拓展等操作具有非常好的规划。但是,但是,有些人更加推崇第三种方法,由于篇幅有限,我在下篇文章来详细分析,期待。。。