1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap
2 提交表单到action,但是action没有request对象,不能直接使用request对象
3 action获取表单提交数据主要三种方式
(1)使用ActionContext类
(2)使用ServletActionContext类
(3)使用接口注入方式
使用ActionContext类获取
- Form1DemoAction类
public class Form1DemoAction extends ActionSupport {
public String execute() throws Exception {
//1.第一种方式使用ActionContext类获取
//获取ActionContext对象
ActionContext context = ActionContext.getContext();
//2.调用方法得到表单数据
//key是表单输入项name属性值,value是输入的值
HttpParameters map = context.getParameters();
Set<String> keys = map.keySet();
for (String key : keys ) {
//数组形式,因为输入项里面可能有复选框情况
Parameter value = map.get(key);
System.out.println(Arrays.toString(value.getMultipleValues()));
}
return NONE;
}
}
- struts.xml的配置
<package name="demo2" extends="struts-default" namespace="/">
<action name="form1" class="cn.itcast.form.Form1DemoAction">
</action>
</package>
- form1.jsp
<body>
<form action="${pageContext.request.contextPath}/form1.action" method="post">
username:<input type="text" name="username"/>
<br/>
password:<input type="text" name="passwod"/>
<br/>
address:<input type="text" name="address"/>
<br/>
<input type="submit" value="提交"/>
</form>
</body>