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>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于