struts 獲取form表單中的資料
阿新 • • 發佈:2018-12-04
一、通過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;
}
}
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>