Struts2学习之旅(5)
2016-07-31 10:24
148 查看
Struts2学习之旅(5)–接收参数
一、首先创建一个登录界面模拟数据
注意:下面在定义action中出现一个错误应该是:
**<form action="LoginAction.action" method="post">**
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="LoginAction" method="p"> 用户名:<input type="text" name="username"/> 密码: <input type="password" name="password"/> </form> </body> </html>
创建一个对应的Action:
public class LoginAction extends ActionSupport { public String login() { return SUCCESS; } }
并在helloworld.xml中添加对应的<action>标签
为了验证Acton可以接收属性, 在LoginAction中定义username和password: 在login()中打印属性值
package com.chb.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private String username; private String password; public String login() { System.out.println(username); return SUCCESS; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
执行过程:
使用Action属性接收参数的弊端
如果参数个数比较多,那么在Action中定义的属性就比较多,这是十分繁琐的所以我们就使用第二种方法: 使用doMain Model接收参数
二、使用doMain Model接收参数
首先创建一个属性对象:package com.chb.action.entity; /** * 创建一个属性的对象 * @author Administrator * */ public class User { private String username; private String password; public User() { super(); } public User(String username, String password) { super(); this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
在LoginAction中使用这个对象
public class LoginAction extends ActionSupport { private User mUser; public String login() { System.out.println(mUser.getUsername()); return SUCCESS; } public User getmUser() { return mUser; } public void setmUser(User mUser) { this.mUser = mUser; } }
在对应的login.jsp中
<body> <form action="LoginAction.action" method="post"> 用户名:<input type="text" name="username"/><br> 密码: <input type="password" name="password"/><br> <input type="submit" value="提交"> </form> </body>
要做相应的修改,就属性和对象联立起来
在<input>的属性name设置为name=”user.username”
由此将传入的值与LoginAction中的对象联立起来。
<form action="LoginAction.action" method="post"> 用户名:<input type="text" name="user.username"/><br> 密码: <input type="password" name="user.password"/><br> <input type="submit" value="提交"> </form>
三、使用ModelDriven接收参数
(1) 、LoginAction实现ModelDriven<T>接口(2)、 重写getModel();
(3)、 在login.jsp中不需要关联user
(4)、在LoginAction中直接创建User user = new User();
(5)、在getModel中返回这个User
LoginAction.java
package com.chb.action; import com.chb.action.entity.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class LoginAction extends ActionSupport implements ModelDriven<User>{ private User user = new User(); public String login() { System.out.println(user.getUsername()); return SUCCESS; } @Override public User getModel() { // TODO Auto-generated method stub return user; } }
在login.jsp中不需要关联对象了:
<form action="LoginAction.action" method="post"> 用户名:<input type="text" name="username"/><br> 密码: <input type="password" name="password"/><br> <input type="submit" value="提交"> </form>
改进:如果User对象不光是基本数据类型:
User中添加合集对象
package com.chb.action; import com.chb.action.entity.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class LoginAction extends ActionSupport implements ModelDriven<User>{ private User user = new User(); public String login() { System.out.println(user.getUsername()); System.out.println(user.getUsers().get(0).getUsername()); System.out.println(user.getUsers().get(1).getUsername()); return SUCCESS; } @Override public User getModel() { // TODO Auto-generated method stub return user; } }
相关文章推荐
- Struts2学习(三):namespace属性的使用
- Struts2学习笔记2 ――表单验证
- struts2学习:配置篇之namespace
- (原)Struts2学习1
- Struts2学习
- struts2学习系列文章的地址列表
- struts2学习:配置篇值请求处理元素
- Struts2学习(九):集成Hibernate
- Struts2学习:类型转换篇
- Struts2学习笔记4 ――国际化
- 关于学习STRUTS2的问题
- Struts2学习:配置篇之配置文件
- Struts2学习:配置篇之管理层配置元素(一)
- Struts2学习:Overview之Nutshell
- 学习struts2的感悟
- Struts2学习(一):创建一个Struts2应用
- Struts2学习(六):访问隐藏的request和session
- Struts2学习:在struts2中集成Spring
- struts2 学习笔记
- Struts2拦截器学习