码迷,mamicode.com
首页 > 其他好文 > 详细

【代码总结】Struts2 Action接受参数方式的对比

时间:2018-03-08 00:17:16      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:on()   方式   场景   get   class   als   min   实例   数字   

一、属性方式

1、Action中:对应表单参数的setter、getter

2、页面中  :Form中元素name取值属性名

  <s:property value="属性名" />

3、应用场景:接受的参数字段个数比较少

package com.struts.action;

public class LoginAction {
    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;
    }
    public String login(){
        if("admin".equals(username) && "123456".equals(password)){
            return "success";
        }else{
            return  "failed";
        }

    }
}

二、JavaBean方式

1、Action中:为Action添加实体属性以及setter和getter

2、页面中  :Form中元素name取值属性名

  <s:property value="对象名.属性名" />

3、应用场景:字段多,可以封装为一个对象;将模型数据从Action中分离,创建model层

package com.struts.action;

import com.struts.model.User;

public class Login2Action {
    private User user;
    public String login(){
        if("admin".equals(user.getUsername()) && "123456".equals(user.getPassword())){
            return "success";
        }else{
            return  "failed";
        }
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

三、ModelDriven方式

1、Action中:Action实现ModelDriven接口,重写方法getModel();Action中药提供JavaBean类型的属性,西药实例化,但不需要对应的setter和getter方法

2、页面中  :Form中元素name取值属性名

  <s:property value="属性名" />

3、应用场景:和JavaBean类似,但不常用

package com.struts.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven;
import com.struts.model.User;

public class Login3Action implements ModelDriven<User>{
    private User user;
    @Override
    public User getModel() {
        if(user == null){
            user = new User();
        }
        return user;
    }
    public String login(){
        if("admin".equals(user.getUsername()) && "123456".equals(user.getPassword())){
            ActionContext.getContext().getSession().put("user",user);
            return "success";
        }else{
            return  "failed";
        }
    }
}

 

【代码总结】Struts2 Action接受参数方式的对比

标签:on()   方式   场景   get   class   als   min   实例   数字   

原文地址:https://www.cnblogs.com/sqyysec/p/8525174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!