博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2 页面向Action传参方式
阅读量:5749 次
发布时间:2019-06-18

本文共 2753 字,大约阅读时间需要 9 分钟。

1、基本属性注入

  我们可以直接将表单数据项传递给Action,而Action只需要提供基本的属性来接收参数即可,这种传参方式称为基本属性注入。例如

  jsp页面:

  Action:

package action;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import models.User;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 execute(){        //用户名或密码错误        if(!"admin".equals(this.username) || !"123456".equals(this.password)){            return Action.LOGIN;        }        //用户名和密码正确        else{            return Action.SUCCESS;        }    }}

只需要在Action中提供username和password两个属性,并提供了setXXX()方法,就可以实现参数的自动传递,这里不需要成员变量的名称和参数名称一致,只需要setXXX()对于的属性名和参数名相同就行

 

2、域模型注入

   如果表单上的数据项很多,我们可以将表单中的数据项封装成实体对象后传递给Action,而Action需要提供实体对象属性来接收参数,这种传参的方式称为域模型注入。

   如上面例子,可以先定义一个User实体类

package models;public class User {    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;    }}

在Action中

package action;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import models.User;public class LoginAction {    private User user;    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    public String execute(){        //用户名或密码错误        if(user==null || !"admin".equals(user.getUsername()) || !"123456".equals(user.getPassword())){            return Action.LOGIN;        }        //用户名和密码正确        else{            return Action.SUCCESS;        }    }}

  

  jsp页面:

 

3、模型驱动传参数(Model Driven)

Action:

package action;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ModelDriven;import models.User;public class LoginAction implements ModelDriven
{ private User user=new User(); public String login(){ //用户名或密码错误 if(user==null || !"admin".equals(user.getUsername()) || !"123456".equals(user.getPassword())){ return Action.LOGIN; } //用户名和密码正确 else{ return Action.SUCCESS; } } public User getModel() { // TODO Auto-generated method stub return user; }}

JSP页面

 

  

 

转载地址:http://jihzx.baihongyu.com/

你可能感兴趣的文章
Ubuntu重启网络/etc/init.d/networking restart报错
查看>>
A1-2017级算法上机第一次练习赛 B ModricWang和数论
查看>>
iOS知识小总结
查看>>
检查进程是否存在
查看>>
作业一
查看>>
Java IO流文件复制/解压的几种方法总结
查看>>
WPF 冒泡路由事件
查看>>
hdu 1754 I Hate It
查看>>
通过Django Channels设计聊天机器人WEB框架
查看>>
Linux下使进程在后台运行
查看>>
并发编程 之 生产者消费者模型
查看>>
c 实现对文件操作:选择排序
查看>>
Random类
查看>>
记java一次尴尬的@Override
查看>>
Linux 终端命令格式
查看>>
结构型模式——代理模式(七)
查看>>
PostMan使用教程(1)
查看>>
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中
查看>>
Python数据分析Numpy库方法简介(四)
查看>>
【Java例题】2.3 计算银行存款本息
查看>>