一、通过action获取表单提交的数据:ActionContext
// action中的内容
public String form1(){
System.out.println("通过action获取表单提交的数据:ActionContext");
//获取上下文对象
ActionContext context = ActionContext.getContext();
//通过context.getParameters()获取参数map集合
HttpParameters parameters = context.getParameters();
//将map转为实体set
Set<Map.Entry<String, Parameter>> entries = parameters.entrySet();
//获取迭代器
Iterator<Map.Entry<String, Parameter>> iterator = entries.iterator();
while(iterator.hasNext()){
Map.Entry<String, Parameter> next = iterator.next();
System.out.println(next.getKey());
Parameter value = next.getValue();
for ( String multipleValues : value.getMultipleValues()) {
System.out.println(multipleValues);
}
}
return NONE;
}
//jsp中的类容
<form action="form_form1" method="post">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="pwd" placeholder="密码"><br>
<input type="checkbox" name="lang" value="java">java<br>
<input type="checkbox" name="lang" value="C#">C#<br>
<input type="checkbox" name="lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
二、使用ServletActionContext
//action中的类容
public String form2(){
System.out.println("使用ServletActionContext");
HttpServletRequest request = ServletActionContext.getRequest();
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
String[] lang = request.getParameterValues("lang");
System.out.println("username:"+username);
System.out.println("pwd:"+pwd);
System.out.println("lang:"+ Arrays.toString(lang));
return NONE;
}
//jsp中的类容
<form action="form_form2" method="post">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="pwd" placeholder="密码"><br>
<input type="checkbox" name="lang" value="java">java<br>
<input type="checkbox" name="lang" value="C#">C#<br>
<input type="checkbox" name="lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
三、使用接口注入方式
java代码:
package com.hp.form.action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
public class FromAction2 extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;
/**
* 使用接口注入方式
* 核心: 实现ServletRequestAware接口
* @return
*/
public String form(){
System.out.println("使用接口注入方式");
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
String[] lang = request.getParameterValues("lang");
System.out.println("username:"+username);
System.out.println("pwd:"+pwd);
System.out.println("lang:"+ Arrays.toString(lang));
return NONE;
}
@Override
public void setServletRequest(HttpServletRequest httpServletRequest) {
request = httpServletRequest;
}
}
//jsp代码
<form action="form2_form" method="post">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="pwd" placeholder="密码"><br>
<input type="checkbox" name="lang" value="java">java<br>
<input type="checkbox" name="lang" value="C#">C#<br>
<input type="checkbox" name="lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
四、使用request分别获取属性,并调用bean方法(原始)
java代码
package com.hp.form.action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
public class FromAction3 extends ActionSupport {
private String username;
private String pwd;
private String[] lang;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String[] getLang() {
return lang;
}
public void setLang(String[] lang) {
this.lang = lang;
}
/**
* 使用request分别获取属性,并调用bean方法(原始)
* @return
*/
public String form(){
System.out.println("使用request分别获取属性,并调用bean方法(原始)");
System.out.println("username:"+username);
System.out.println("pwd:"+pwd);
System.out.println("lang:"+ Arrays.toString(lang));
return NONE;
}
}
//jsp代码
<form action="form3_form" method="post">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="pwd" placeholder="密码"><br>
<input type="checkbox" name="lang" value="java">java<br>
<input type="checkbox" name="lang" value="C#">C#<br>
<input type="checkbox" name="lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
五、模型驱动封装
java代码
package com.hp.form.action;
import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.util.Arrays;
public class FromAction4 extends ActionSupport implements ModelDriven<User>{
private User user = new User();
/**
* 模型驱动封装
* @return
*/
public String form(){
System.out.println("模型驱动封装");
System.out.println("username:"+user.getUsername());
System.out.println("pwd:"+user.getPwd());
System.out.println("lang:"+ Arrays.toString(user.getLang()));
return NONE;
}
@Override
public User getModel() {
return user;
}
}
jsp代码
<form action="form4_form" method="post">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="pwd" placeholder="密码"><br>
<input type="checkbox" name="lang" value="java">java<br>
<input type="checkbox" name="lang" value="C#">C#<br>
<input type="checkbox" name="lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
六、表达式封装
java代码
package com.hp.form.action;
import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.util.Arrays;
public class FromAction5 extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
/**
* 表达式封装
* @return
*/
public String form(){
System.out.println("表达式封装");
System.out.println("username:"+user.getUsername());
System.out.println("pwd:"+user.getPwd());
System.out.println("lang:"+ Arrays.toString(user.getLang()));
return NONE;
}
}
扫描二维码关注公众号,回复:
4355754 查看本文章
jsp代码
<form action="form5_form" method="post">
<input type="text" name="user.username" placeholder="用户名"><br>
<input type="password" name="user.pwd" placeholder="密码"><br>
<input type="checkbox" name="user.lang" value="java">java<br>
<input type="checkbox" name="user.lang" value="C#">C#<br>
<input type="checkbox" name="user.lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
七、List封装
java代码
package com.hp.form.action;
import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Arrays;
import java.util.List;
public class FromAction6 extends ActionSupport {
private List<User> userList;
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
/**
* List封装
* @return
*/
public String form(){
System.out.println("List封装");
System.out.println("username:"+userList.get(0).getUsername());
System.out.println("pwd:"+userList.get(0).getPwd());
System.out.println("lang:"+ Arrays.toString(userList.get(0).getLang()));
return NONE;
}
}
jsp代码
<form action="form6_form" method="post">
<input type="text" name="userList[0].username" placeholder="用户名"><br>
<input type="password" name="userList[0].pwd" placeholder="密码"><br>
<input type="checkbox" name="userList[0].lang" value="java">java<br>
<input type="checkbox" name="userList[0].lang" value="C#">C#<br>
<input type="checkbox" name="userList[0].lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
八、 Map封装
package com.hp.form.action;
import com.hp.form.User;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class FromAction7 extends ActionSupport {
private Map<String,User> userMap;
public Map<String, User> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, User> userMap) {
this.userMap = userMap;
}
/**
* Map封装
* @return
*/
public String form(){
System.out.println("Map封装");
System.out.println("username:"+userMap.get("one").getUsername());
System.out.println("pwd:"+userMap.get("one").getPwd());
System.out.println("lang:"+ Arrays.toString(userMap.get("one").getLang()));
return NONE;
}
}
jsp代码
<form action="form7_form" method="post">
<input type="text" name="userMap['one'].username" placeholder="用户名"><br>
<input type="password" name="userMap['one'].pwd" placeholder="密码"><br>
<input type="checkbox" name="userMap['one'].lang" value="java">java<br>
<input type="checkbox" name="userMap['one'].lang" value="C#">C#<br>
<input type="checkbox" name="userMap['one'].lang" value="C++">C++<br>
<input type="submit" value="提交">
</form>
struts.xml 配置
<package name="hp" namespace="/" extends="struts-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="form_*" class="com.hp.form.action.FromAction" method="{1}"></action>
<action name="form2_*" class="com.hp.form.action.FromAction2" method="{1}"></action>
<action name="form3_*" class="com.hp.form.action.FromAction3" method="{1}"></action>
<action name="form4_*" class="com.hp.form.action.FromAction4" method="{1}"></action>
<action name="form5_*" class="com.hp.form.action.FromAction5" method="{1}"></action>
<action name="form6_*" class="com.hp.form.action.FromAction6" method="{1}"></action>
<action name="form7_*" class="com.hp.form.action.FromAction7" method="{1}"></action>
</package>