struts2中的Action接收表单传递的参数

struts2中的Action接收表单传递过来的参数有3种方法:

1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数.这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action 类中充斥着setter,getter方法,程序结构不是很美观。

<form id="typeform" name="typeform" method="post" action="savetype.action">
      <input type="hidden" name="id" value="${type.id }" />
      <input type="text" name="name" value="${type.name }"  />
</form>


2. 把表单传递过来的参数封装成一个类,然后调用其中的属性。

例如:把 save.jsp 页面要传来的参数进行封装:

public class Type {
    private String id;
    private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

然后在 Action方法中,定义该类的对象就可以了,如:

public class SaveAction extends ActionSupport{
/*传递过来的参数都封装在type中了,用getter方法取值就可以了*/
private Type type;
publicType getType(){
return type;
}
public void setType(Type type){
this.type=type;
}
}

通过这种方法传值,还必须在jsp 页面做一下处理,save.jsp 中 typeform 的属性名应该改成这样:

登陆表单type.jsp:

<form id="typeform" name="typeform" method="post" action="savetype.action">
         <input type="hidden" name="type.id" value="${type.id }" />
        <input type="text" name="type.name" value="${type.name }"  />
</form>

这种方法,在struts开发中是很常用的一种方法!

3. 通过实现ModelDriven接口接收表单数据

首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法
public classSaveActionextends ActionSupport implements ModelDriven<Type>{
 /* 表单传来的参数封装在 type对象中,表单属性名不需要加上引用type对象,直接传参数名*/
privateTypetype= new Type();
publicType getModel(){
returntype;
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值