问大家个问题:我从页面接受到一些用户信息然后传到service里处理,现在有个疑问就是,是直接在action里组装这个bean然后传bean过去,还是用参数的形式,或者直接把request传过去?

解决方案 »

  1.   

    用户输入的信息一般action里获取值,如果想用把信息组装起来,可以另外建一个类(VO或DTO),然后在action里用模型驱动方法获取值。代码如下:acton如下:
    @Component("registerAction")
    @Scope("prototype")
    public class RegisterAction extends ActionSupport implements ModelDriven{

    private UserInfo userInfo = new UserInfo();    //vo类

    private RegisterService registerService;


    public UserInfo getUserInfo() {
    return userInfo;
    } public void setUserInfo(UserInfo userInfo) {
    this.userInfo = userInfo;
    }


    public RegisterService getRegisterService() {
    return registerService;
    } @Resource
    public void setRegisterService(RegisterService registerService) {
    this.registerService = registerService;
    }

    @Override
    public String execute() throws Exception {

    Map session = ActionContext.getContext().getSession();

    User user = new User();

    user.setUserName(userInfo.getUserName().trim());
    user.setPassword(MD5.addDigest(userInfo.getPassword1().trim()));
    user.setQq(userInfo.getQq().trim());
    user.setWant(userInfo.getWant().trim());
    user.setPhone(userInfo.getPhone().trim());
    user.setEmail(userInfo.getEmail().trim());
    user.setStoreAddress(userInfo.getStoreAddress().trim());

    //检查是否同名
    if(registerService.existByName(user)){

    session.put("registerMsgName", "此用户名已存在");  //放进session,页面调用

    return "userRegisterFail";
    }

    //检查是否存在相同e-mail
    if(registerService.existByEmail(user)){

    session.remove("registerMsgName");
    session.put("registerMsgEmail", "Email已存在");  //放进session,页面调用

    return "userRegisterFail";
    }

    session.remove("registerMsgEmail");
    registerService.add(user);    //添加

    return "userRegisterSuccess";
    } //modelDiven实现,把页面的值初始化UserInfo
    public Object getModel() {
    return userInfo;
    }

    }VO类如下:
    public class UserInfo {

    private int id;
    private String userName;
    private String password1;
    private String password2;
    private String qq;
    private String want;
    private String phone;
    private String email;
    private String storeAddress;
    private int state;
    private String superUserName;


    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getUserName() {
    return userName;
    }
    public void setUserName(String userName) {
    this.userName = userName;
    } public String getPassword1() {
    return password1;
    }
    public void setPassword1(String password1) {
    this.password1 = password1;
    }
    public String getPassword2() {
    return password2;
    }
    public void setPassword2(String password2) {
    this.password2 = password2;
    }
    public String getQq() {
    return qq;
    }
    public void setQq(String qq) {
    this.qq = qq;
    } public String getWant() {
    return want;
    }
    public void setWant(String want) {
    this.want = want;
    }
    public String getPhone() {
    return phone;
    }
    public void setPhone(String phone) {
    this.phone = phone;
    }
    public String getEmail() {
    return email;
    }
    public void setEmail(String email) {
    this.email = email;
    }
    public String getStoreAddress() {
    return storeAddress;
    }
    public void setStoreAddress(String storeAddress) {
    this.storeAddress = storeAddress;
    }
    public int getState() {
    return state;
    }
    public void setState(int state) {
    this.state = state;
    }
    public String getSuperUserName() {
    return superUserName;
    }
    public void setSuperUserName(String superUserName) {
    this.superUserName = superUserName;
    }

    }希望能帮上忙!