下面随笔三种struts2向后台传递参数的三种常用方法:
一、通过request对象的getParameter方法获取,代码如下:
<!-- 使用request.getParameter方法接收 -->
<a href="singleParam?param1=Jack">方法一</a>
后台action接收参数:
public String singleParam(){
HttpServletRequest request=
(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
System.out.println(request.getParameter("param1"));
return SUCCESS;
}
理解:申明一个HttpServletRequest对象,通过ActionContext,也就是action的上下文获取ServletActionContext.HTTP_REQUEST,就可以接收参数了
二、通过属性获取,get set方法,代码如下:
<!-- 通过属性接收 get set -->
<a href="singleParam?param2=Tom">方法二</a>
后台action接收参数:
public String param2;
public String singleParam(){
System.out.println(param2);
return SUCCESS;
}
public String getParam2() {
return param2;
}
public void setParam2(String param2) {
this.param2 = param2;
}
理解:通过设置名称为参数名的属性来接收,设置get和set方法就行
三、通过域对象来获取,使用表单传输参数,代码如下:
<!-- 通过表单传递域模型 -->
<form action="singleParam" method="post">
用户名:<input type="text" name="user.username"/>
密码:<input type="password" name="user.password"/>
<input type="submit" value="提交"/>
</form>
后台action接收参数:
User user;
public String singleParam(){
System.out.println(user.getUsername());
System.out.println(user.getPassword());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
还有一个User类,称之为域模型:
public class User {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
理解:这种方式可以很好的与Hibernate结合,在Hibernate中User类称之为实体,这样的接收方式即通过域对象进行传值