struts2 怎么绑定表单提交的数据?

2024-12-15 13:45:54
推荐回答(5个)
回答1:

Struts2绑定请求数据有两种方法
方法一:直接绑定到action的属性上,就是将参数作为a ction类的属性,让OGNL自动填充.
方法二:绑定到一个javaBean实体类。就是楼主所说的这种方法

第一种:绑定到action的属性,要求表单中的数据名称与action中的属性名称必须一致,且有相应的setter/getter方法,例如:登录的用户名和密码
在前台页面


在action中定义两个属性:
private String username;
private String password;
//相应的set、get方法
就可获取:
System.out.println("username: "+username);
System.out.println("password: " +password);

方法二:绑定到一个javaBean实体类
先定义一个javaBean,其中有哪些属性根据表单数据域来定义
例如:定义一个用户信息Bean,相应的属性setter\getter方法
public class UserInfo{
private String username;
private String password;
//相应的属性setter、getter方法

}
前面页面:


注意这个userInfo就是你在action类中定义的一个UserInfo类型的属性
即action中定义:private UserInfo userInfo;也要有set、get方法
这样action就是自动绑定获取该参数
System.out.println("username: "+userInfo.username);
System.out.println("password: " +userInfo.password);

还有其他复杂一点的方法:
1、通过ActionContext对象的getParameters()方法,得到请求参数Map,然后通过parameterMap来获取请求参数。需要注意的是:当通过parameterMap的键取得参数值时,取得是一个数组对象,即同名参数的值的集合
ActionContext context=ActionContext.getContext();
Map parameterMap=context.getParameters();

String[] usernameArray=(String[])parameterMap.get("username");
String[] passwordArray=(String[])parameterMap.get("password");
//注意是一个数组对象
String username = usernameArray[0];
String password = passwordArray[0];
楼主也可以尝试尝试~

回答2:

在Struts2中,Form的绑定表单提交非常方便。
e.g: A 要在Action中取出页面提交的username和password,两个属性同属User对象,此时:
  在Action中,声明public User user;并给出get()和set();
  在JSP中,
     或用标签:
     或用标签:
  这样可将user对象的输入值直接绑定到Action中。
e.g: B 然而,很多时候需要不不仅仅是一个对象,而是多个对象,List,Map,又或者Set。
先说 Map和List:
   如果 Action 中的属性是 Map users; 那么与此对应的表单写法就是:(用标签来写)




  此时,绑定到Action中的就是一个Map类型的users["one","two"]
  如果是对于 Action 中的 List 属性,List users; 那么与此对应的表单写法就是:




  此时,绑定到Action中的就是一个List类型的users[0,1]
e.g C 再来看看Set,set是一个无序集合,所以无法像 List 那样用数字下标来访问
此时提交页面这么写,最好提交前能根据输入的用户名自动修动输入框的 name。
用户名:
密 码:
显示的时候页面可用标签
用户名:
密 码:


action中取得username的值是"jack,lucy".
注意:此处password是字符串类型,不是数组类型

回答3:

Struts2里只需要定义和表单中相同名字的属性.就可以获取到他的值拉.
比如你的user和name两个表单的名字/
那你在Action里写private String user;
private String name;生成get,set属性..那你就可以通过getuser获取到表单中user的值了/

回答4:

比如 前台JSP


action中:
Users user;
getUser{};
setUser{}

直接保存了就 用${user.uname} 直接调出这个值了

回答5:

直接提交到action就可以了,在接受的action中使用变量的get和set方法就能接收到他的值