Struts接收请求参数

来源:互联网 发布:淘宝美工在哪里做 编辑:程序博客网 时间:2024/05/29 12:58

Struts2是MVC中的控制器(处理请求)
1、属性驱动:直接在action的POJO类中声明与表单元素一致的属性,并生成匹配的get/set方法,Struts2会自动将表单数据提交到action中,并直接给相应的属性赋值。

<form action="login.action" method="post">    用户名:<input type= "text" name="username"><br>    密&nbsp;码:<input type="password" name="password"><br>    <input type="submit" value="提交"/>    </form>
在action中定义username和password属性和对应的get/set方法

2、模型驱动:
Struts2中提供了一个叫做模型驱动的拦截器
public class LoginAction implements ModelDriven{…}可以配合域驱动一起使用
模型驱动要实现getModel方法

<form action="login.action" method="post">用户名:<input type="text" name="username" value="${username}"><br>密码:<input type="password" name="password"><br><input type="submit" value="提交"/></form>
public User getModel(){if(this.user==null){user=new User();return user;}

3、域驱动:
通常情况下,表单元素却往往对应一个实体,实体又往往单独放在实体层中,那么此时就需要在action中放入实体对象作为请求参数域驱动的方式就是把实体中的对象作为action的属性。

<form action = "login.action" method = "post">    用户名:<input type="text" name="user.username" value=${user.username}"><br>    密&nbsp;码:<input type="password" name="user.password"><br>    <input type="submit" value="提交"/>    </form>

可以单独定义一个User的类,在类中定义username,userpassword.
在LoginAction中定义 private User user这个对象,实现get/set方法
4、集合类参数:
如果需要接受多个相同的对象参数,可以使用泛型集合,而不能采用数组的方式。

<form action ="login.action" method="post">用户名:<input type="text" name="user[0].username"><br>密&nbsp;码:<input type="password" name="user[0].password"><br>用户名:<input type="text" name="user[1].username"><br>密 &nbsp;码:<input type="password" name="user[1].password"><br><input type="submit" value="提交"/></form>

action文件中定义user的方法:
private User user;

原创粉丝点击