控制层action获取jsp传递过来的参数有哪几种:

1、通过request获取;
HttpServletRequest request = ServletActionContext.getRequest();
String pid = request.getParater("Pid");
2、在action中分别定义表单的属性,然后set,get方法,即可获取jsp传递过来的数据;
private String pid ;
private String pname;

//省略set,get方法...
private Log log = LogFactory.getLog(HelloAtion.class);
public String register(){
log.info("获取页面数值pid:+pid+\t pname:"+pname);
return "reg";
}
缺点: 如果属性过多,该类中的方法相当多。属性跟模型中的属性不是重名,是一种资源的浪费;

3、在action中直接定义模型bean,然后对bean进行set,get,jsp页面上的属性"别名.属性名"来设置表单;
private UserBean userBean;
//省略set,get方法....
private Log log = LogFactory.getLog(HelloAction.class);
log.info("获取页面的参数pid:"+userBean);
return "reg";
}
缺点:jsp页面上的表单name属性,看着别扭;

4、在action中实现ModelDeriven接口,jsp页面传递过来的数据,表单域中如果没有指明"别名",属性就匹配ModelDriven
中的模型bean
public class UserTwoAtion implements ModelDriven<UserBean>{}
优点:form中的表单的name名称;
缺点:action中只能实现一个ModelDriven接口,就表示jsp页面只能向一个模型bean中注入数据;
如果在一个action类中相同时在两个或多个bean注入数据,请参考第三种获取值方式;

 

posted @ 2017-06-02 19:53  hdsfakjhf  阅读(2415)  评论(0编辑  收藏  举报