//获取表单数据
表单中获取路径 ${pageContext.request.contextPath}/form1.action
extends ActionSupport
AactionContext类
AactionContext context = actionContext.getContext();
Map<String ,Object> map = context.getParameters();
Set<String> key=map.keySet();
for(String key:keys){
Object[] obj = (Object[]) map.get(key);
System.out.println(Arrays.toString(obj));
}
SerVletActionContext类
static HttpServletRequest getRequest();
//获取Request对象
HttpServletRequest request = SerVletActionContext.getRequest();
//得到结果
String username = request.getParameter("username");
String password = request.getParameter("password");
//输出
System.out.println(username);
//使用接口注入方式
private HttpServletRequest request;
implements ServletRequestAware
public void SetServletRequest(HttpServletRequest request){
this.request=request;
}
request.getParameter();
//在action中操作域对象
request session servletContext
//使用servletContext操作域对象
request
HttpServletRequest request = SerVletActionContext.getRequest();
request.setAttribute("req","reqValue");
session
HttpSession session = request.getSession();
session.setAttribute("sess","sessValue");
ServletContext
ServletContext context = ServletActionContext.getServletContext();
context.setAttribute("contextname","contextValue");
//struts2数据封装
// Struts2提供获取表单数据方式
// 使用原始方式获取表单数据封装到实体类对象
public class User{
private String name;
private String password;
get和set方法
}
//使用 ServletActionContext 获取表单数据封装到实体类对象里面
Action 类中
public String Execute(){
HttpServletRequest request = SerVletActionContext.getRequest();
String username = request.getParameter("username");
....
}
封装到实体类对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
System.out.println(user);
//属性封装
// 直接把表单属性封装到 Action 的属性中
// 变量名和表单的 name 一样
// 生成get和set方法
// 在 action 类中:
private String username;
private String password;
....
// set 和 get 方法
execute(){
System.out.println(username+","+password);
}
//使用属性封装获取表单数据到属性里面,不能把数据直接封装到实体类对象里面
//模型驱动封装
// 可以把表单数据封装到实体类里面
action 实现接口 ModeDriven
action类中:
implements ModelDriven<User>{
private User user=new USer();
public User getModel(){
return user;
}
}
实现接口里面的方法 getModel 方法
在 action 里面创建实体类对象
//注意问题:不能同时使用属性封装和模型驱动封装获取同一个表单数据
//如果同时使用,只执行模型驱动封装
//表达式封装
//实现过程
使用表达式可以把表单数据封装到实体类对象中
在 action 中声明实体类
在 action 中:
private User user;
//生成set和get方法
生成实体类变量的set 和 get 方法
在表单输入项name属性值里边写表达式形式
name = "user.username"
password = "user.password"
....
封装到集合里面
封装到list集合中
页面中:name = "list[0].name" list[0]表示得到集合中第一个user对象
....
在action中声明list
在action中:
private List<User> list;
//生成get和set方法
生成list变量的set和get方法
在表单输入项里面写表达式
name = "list[0].name"
....
封装到map集合中
页面中:name = "map{'key'}.username"
....
实现步骤
声明map集合
在action中:
private Map<String ,User> map;
//生成get和set方法
在表单输入项name属性值里边写表达式形式
设置key的值map['key值']
设置value值
name = "map{'key'}.username"
....
result中的type属性:
默认值 dispatcher 转发到页面
redirect 重定向到页面
chain 转发到action
redirectAction 重定向到action
表单中获取路径 ${pageContext.request.contextPath}/form1.action
extends ActionSupport
AactionContext类
AactionContext context = actionContext.getContext();
Map<String ,Object> map = context.getParameters();
Set<String> key=map.keySet();
for(String key:keys){
Object[] obj = (Object[]) map.get(key);
System.out.println(Arrays.toString(obj));
}
SerVletActionContext类
static HttpServletRequest getRequest();
//获取Request对象
HttpServletRequest request = SerVletActionContext.getRequest();
//得到结果
String username = request.getParameter("username");
String password = request.getParameter("password");
//输出
System.out.println(username);
//使用接口注入方式
private HttpServletRequest request;
implements ServletRequestAware
public void SetServletRequest(HttpServletRequest request){
this.request=request;
}
request.getParameter();
//在action中操作域对象
request session servletContext
//使用servletContext操作域对象
request
HttpServletRequest request = SerVletActionContext.getRequest();
request.setAttribute("req","reqValue");
session
HttpSession session = request.getSession();
session.setAttribute("sess","sessValue");
ServletContext
ServletContext context = ServletActionContext.getServletContext();
context.setAttribute("contextname","contextValue");
//struts2数据封装
// Struts2提供获取表单数据方式
// 使用原始方式获取表单数据封装到实体类对象
public class User{
private String name;
private String password;
get和set方法
}
//使用 ServletActionContext 获取表单数据封装到实体类对象里面
Action 类中
public String Execute(){
HttpServletRequest request = SerVletActionContext.getRequest();
String username = request.getParameter("username");
....
}
封装到实体类对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
System.out.println(user);
//属性封装
// 直接把表单属性封装到 Action 的属性中
// 变量名和表单的 name 一样
// 生成get和set方法
// 在 action 类中:
private String username;
private String password;
....
// set 和 get 方法
execute(){
System.out.println(username+","+password);
}
//使用属性封装获取表单数据到属性里面,不能把数据直接封装到实体类对象里面
//模型驱动封装
// 可以把表单数据封装到实体类里面
action 实现接口 ModeDriven
action类中:
implements ModelDriven<User>{
private User user=new USer();
public User getModel(){
return user;
}
}
实现接口里面的方法 getModel 方法
在 action 里面创建实体类对象
//注意问题:不能同时使用属性封装和模型驱动封装获取同一个表单数据
//如果同时使用,只执行模型驱动封装
//表达式封装
//实现过程
使用表达式可以把表单数据封装到实体类对象中
在 action 中声明实体类
在 action 中:
private User user;
//生成set和get方法
生成实体类变量的set 和 get 方法
在表单输入项name属性值里边写表达式形式
name = "user.username"
password = "user.password"
....
封装到集合里面
封装到list集合中
页面中:name = "list[0].name" list[0]表示得到集合中第一个user对象
....
在action中声明list
在action中:
private List<User> list;
//生成get和set方法
生成list变量的set和get方法
在表单输入项里面写表达式
name = "list[0].name"
....
封装到map集合中
页面中:name = "map{'key'}.username"
....
实现步骤
声明map集合
在action中:
private Map<String ,User> map;
//生成get和set方法
在表单输入项name属性值里边写表达式形式
设置key的值map['key值']
设置value值
name = "map{'key'}.username"
....
result中的type属性:
默认值 dispatcher 转发到页面
redirect 重定向到页面
chain 转发到action
redirectAction 重定向到action