您的位置:首页 > 编程语言 > Java开发

struts2 ——action接受参数的三种方式总结

2016-12-31 22:01 405 查看
一、用Action属性接收参数
在自己的Action里面设置属性并设置set方法,在new
Action时会自动从参数中将相应的属性设置。Struts2在设置属性时会调用相应的set方法。
      注:其实接受参数调用的是set方法,返回参数调用的是get方法,这就是为什么action中的属性get,set方法同时存在的原因
action:
//1· 使用get,set方法返回,接收参数
private Integer id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
private String descrition;
private String name;
public String getDescrition() {
return descrition;
}
public void setDescrition(String descrition) {
this.descrition = descrition;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
jsp页面:

<!-- 值栈方式接收 -->
<s:iterator value="#roleList">
<s:property value="id"/>
<s:property value="name"/>
<s:property value="descrition"/>
<s:a action ="role_delete?id=%{id}" onclick="return confirm('你确定要删除吗?')">删除</s:a>
<s:a action ="role_updateUI?id=%{id}">修改</s:a>
<br>
</s:iterator>
<s:a action ="role_addUI">新增</s:a>

二、用DomainModel(域模型)接受参数

设置相应的域模型(由系统自动构造时,注意域模型里必须要有参数为空的构造函数)
 package ca.itcase.OA.domain;

/**
* 岗位
* @author 贾丽敏
*
*/
public class Role {
private Integer id;
private String name;
private String descrition;

public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescrition() {
return descrition;
}
public void setDescrition(String descrition) {
this.descrition = descrition;
}

}


在Action中不用存多个属性,而是声明一个User对象,并设置set、get方法。Struts2会自动newUser对象,而不用手工输入
//2· 使用DomainModel(域模型)接受参数 演示
private Role role;

public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
//删除岗位
public String delete(){
roleServices.delete(role.getId());
return "tolist";
}


JSP页面这样传参:
<!-- 对象方式接收 -->

<s:property value="role.id"/>
<s:property value="role.name"/>
<s:property value="role.descrition"/>
<s:a action ="role_delete?id=%{role.id}" onclick="return confirm('你确定要删除吗?')">删除</s:a>
<br>

三、用DrivenModel接受参数
使用DrivenModel方法接受参数要先实现DirvenModel接口,并在Action中存在getModel()方法,需要自己new一个对象接受Model
//使用模型驱动接受参数
private Role model = new Role();
@Override
public Role getModel() {
return model;
}
//删除岗位
public String delete(){
roleServices.delete(model.getId());
return "tolist";
}


jsp页面:
<s:iterator value="#roleList">
<s:property value="id"/>
<s:property value="name"/>
<s:property value="descrition"/>
<s:a action ="role_delete?id=%{id}" onclick="return confirm('你确定要删除吗?')">删除</s:a>
<s:a action ="role_updateUI?id=%{id}">修改</s:a>
<br>
</s:iterator>
<s:a action ="role_addUI">新增</s:a>

三种接受参数方式的对比总结:简单明了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: