Struts2 学习笔记
Struts2 结果页面的配置
1. 全局结果页面
<global-results>
<result name="success">/hello.jsp</result>
</global-results>
2. 局部结果页面
<action name="hello" class="action.HelloAction">
<!-- 配置返回值到页面 -->
<result name="ok">/hello.jsp</result>
</action>
3. result 标签的 type 属性
(1) 默认为转发值是 dispatcher
(2) 重定向值是 redirect
(3) chain : 转发到 action,一般不用
(4) redirectAction: 重定向到 action
Action 获取表单提交数据
1. 使用 ActionContext 类
ActionContext context = ActionContext.getContext();
//key是表单输入项name的值,value是输入的值
Map<String, Object> map = context.getParameters();
2. 使用 ServletActionContext 类
HttpServletRequest request = ServletActionContext.getRequest();
String name = request.getParameter("name");
String pass = request.getParameter("pass");
3. 使用接口注入
public class HelloAction extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request = request;
}
public String execute(){
String name = request.getParameter("name");
String pass = request.getParameter("pass");
return NONE;
}
}
实体类的封装
1. 属性封装,在 action 加入字段,变量名称与表单里面的 name 属性一致,生成 set,get 方法
public class HelloAction extends ActionSupport{
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String execute(){
System.out.println(name+" :"+pass);
return NONE;
}
2. 模型驱动封装
public class HelloAction extends ActionSupport implements ModelDriven<User>{
//创建对象
//前提要求:表单输入项name属性值和实体类属性名称一样
private User user = new User();
public User getModel() {
// TODO Auto-generated method stub
return user;
}
public String execute(){
System.out.println(user);
return NONE;
}
}
3. 表达式封装
//在action中声明对象
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String execute(){
System.out.println(user);
return NONE;
}
<form action="${pageContext.request.contextPath }/userAction.action" method="post">
<input type="text" name="user.username" />
<input type="text" name="user.pass" />
</form>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于