ActionContext
ActionContext context = ActionContext.getContext();
HttpParameters parameters = context.getParameters();
String username = parameters.get("username").getValue();
String nick = parameters.get("nick").getValue();
String[] hobbies = parameters.get("hobby").getMultipleValues();//获取组
System.out.println(username);
System.out.println(nick);
System.out.println(Arrays.toString(hobbies));
context.put("putongName","putong");
context.getSession().put("sessionName","session");
context.getApplication().put("APPName","APP");
HttpServletRequest
HttpServletRequest request = ServletActionContext.getRequest();
String username = request.getParameter("username");
String nick = request.getParameter("nick");
String[] hobbies = request.getParameterValues("hobby");
System.out.println(username);
System.out.println(nick);
System.out.println(Arrays.toString(hobbies));
HttpSession session = request.getSession();
session.setAttribute("sessionName","session");
request.setAttribute("putongName","putong");
request.setAttribute("APPName","App");
结果页面配置全局:
<global-results>
<result name="error">/login/res.jsp</result>
</global-results>
在Action当中提供对应属性的set方法(会自动接受参数 自动转换类型)
JSP
<form action="${pageContext.request.contextPath}/login/parameter.java" method="post">
用户名:<input type="text" placeholder="请输入用户名..." name="username"><br/>
昵称:<input type="text" placeholder="请输入用户名..." name="nick"><br/>
爱 好: <input type="checkbox" value="足球" name="hobby">足球
<input type="checkbox" value="篮球" name="hobby">篮球
<input type="checkbox" value="乒乓球" name="hobby">乒乓球<br/>
<input type="submit" value="提交">
</form>
不需要分装实现方法(这种方法如果不需要分装可以直接这么用)
private String username;
private Integer nick;
private List hobby;
public void setUsername(String username) {
this.username = username;
}
public void setNick(Integer nick) {
this.nick = nick;
}
public void setHobby(List hobby) {
this.hobby = hobby;
}
@Override
public String execute() throws Exception {
System.out.println(username);
return null;
}
需要封装的实现方法
1.直接创建一个domain模型 记得添加 get set方法还有就是在jsp前面链接的时候添加Action当中的对象属性名称
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
System.out.println(user);
return null;
}
jsp界面:
<form action="${pageContext.request.contextPath}/login/parameter.java" method="post">
用户名:<input type="text" placeholder="请输入用户名..." name="user.username"><br/>
昵称:<input type="text" placeholder="请输入用户名..." name="user.nick"><br/>
爱 好: <input type="checkbox" value="足球" name="user.hobby">足球
<input type="checkbox" value="篮球" name="user.hobby">篮球
<input type="checkbox" value="乒乓球" name="user.hobby">乒乓球<br/>
<input type="submit" value="提交">
</form>
2实现ModelDriven<你的类名>的接口
模型驱动(ModelDriven),是通过ModelDriven接口来接收请求参数,Action类必须要实现ModelDriven接口(可以使用泛型),并且要重写getModel()方法,这个方法返回的就是Action所使用的数据模型对象。
模型驱动方式通过JavaBean模型进行数据传递。只要是普通的JavaBean,就可以充当模型部分。采用这种方式,JavaBean所封装的属性与表单的属性一一对应,JavaBean将成为数据传递的载体。
private User user = new User();
@Override
public User getModel() {
return this.user;
}
@Override
public String execute() throws Exception {
System.out.println(user);
return null;
}
List封装
jsp:
用户名:<input type="text" name="user[0].name"/><br/>
年龄:<input type="text" name="user[0].age"/><br/>
用户名:<input type="text" name="user[1].name"/><br/>
年龄:<input type="text" name="user[1].age"/><br/>
用户名:<input type="text" name="user[2].name"/><br/>
年龄:<input type="text" name="user[2].age"/><br/>
<input type="submit" value="提交"/>
java代码部分
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String execute() throws Exception {
System.out.println(user);
return null;
}
Map封装
jsp:
用户名:<input type="text" name="user['0'].name"/><br/> 年龄:<input type="text" name="user['0'].age"/><br/> 用户名:<input type="text" name="user['1'].name"/><br/> 年龄:<input type="text" name="user['1'].age"/><br/> 用户名:<input type="text" name="user['2'].name"/><br/> 年龄:<input type="text" name="user['2'].age"/><br/> <input type="submit" value="提交"/>
Java:
private Map<String,User> user; public Map<String, User> getUser() { return user; } public void setUser(Map<String, User> user) { this.user = user; } public String execute() throws Exception { System.out.println(user); return null; }