【Struts2集锦】-界面访问取值赋值
来源:互联网 发布:编辑pdf的软件 编辑:程序博客网 时间:2024/06/06 11:05
界面传值取值在编写web项目的时候总是避免不了的。最近在看Struts2基础视频,敲代码敲多了,应该补充一下基础知识了。
取值赋值的两种方式
1.采用ModelDriven
举例:
(1)首先创建User实体
public class User {private String username;private String 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;}}
(2)Action实现ModelDriven接口,实现getModel()方法,返回Bean对象
/*** 功能: 用ModelDriven方法收集数据 * 作者: 宋笑 * 日期: 2016-1-12 下午12:47:56 * */public class LoginAction implements Action, ModelDriven<User> {private User user = new User();public String execute() throws Exception {//Action中取值if ("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())) {return SUCCESS;}else {return ERROR;}} // 实现getModel()方法,返回User对象public User getModel() {return user;}}界面取值
<body><form action="login.action">用户:<input type="text" name="username"><br>密码:<input type="password" name="password"><br><input type="submit" value="登录"></form></body>
2.直接对Action中的对象赋值
(1)首先创建User实体(与上述一样)
(2)直接定义User对象,创建getset方法
/*** 功能: 直接对Action中的对象赋值 * 作者: 宋笑 * 日期: 2016-1-12 下午12:47:56 * */public class LoginAction implements Action {//定义User实体对象private User user;public String execute() throws Exception {//取值if ("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())) {return SUCCESS;}else {return ERROR;}}public User getUser() {return user;}public void setUser(User user) {this.user = user;}}在html中可以采用如下方式命名输入域
<form action="login.action"> 用户:<input type="text" name="user.username"><br> 密码:<input type="password" name="user.password"><br> <input type="submit" value="登录"></form>
Struts2的Action访问Servlet API三种方式
1.可以通过ActionContext访问Servlet API,获取或存入数据。此种方式没有侵入性
//将登录信息设置到session中ActionContext.getContext().getSession().put("user", username);//采用如下方式访问request对象ActionContext.getContext().put("user", username);//采用如下方式访问application对象ActionContext.getContext().getApplication().put("user", username);//通过request.getParameter()取得数据String username = (String)ActionContext.getContext().getParameters().get("username");
2.可以通过实现装配接口没,完成对Servlet API的访问
* ServletRequestAware取得HttpServletRequest对象
* ServletResponseAware取得HttpServletResponse对象
* ServletContextAware取得ServletContext对象(工具类)
举例:
/*** 功能: 实现 ServletRequestAware,ServletResponseAware接口,访问ServletAPI* 作者: 宋笑 * 日期: 2016-1-12 下午01:02:48 * */public class LoginAction implements Action, ServletRequestAware, ServletResponseAware {private String username;private String password;//定义request,response对象private HttpServletRequest request;private HttpServletResponse response;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;}public String execute() throws Exception {if ("admin".equals(username) && "admin".equals(password)) {//将信息设置到session中request.getSession().setAttribute("user", username);//采用如下方式访问request对象赋值request.setAttribute("user", username);//通过request.getParameter()取得数据request.getParameter("username");return SUCCESS;}else {return ERROR;}}public void setServletRequest(HttpServletRequest request) {this.request = request;}public void setServletResponse(HttpServletResponse response) {this.response = response;}}
3.可以通过ServletActionContext提供的静态方法取得ServletAPI
*getPageContext();
*getRequest();
*getResponse();
*getServletContext();
//session赋值ServletActionContext.getRequest().getSession().setAttribute("user", username);//赋值ServletActionContext.getPageContext().setAttribute("user", username);//赋值ServletActionContext.getServletContext().setAttribute("user", username);//获取数据ServletActionContext.getRequest().getParameter("username");
第一种没有侵入性,剩下的两种有侵入性,但是一般会用第三种比较简单。因为一般Action不复用和测试,所以侵入也没有事儿。
无论做什么事儿,实现的方法总会有很多种,所以我们应该了解所有的方法,选择最合适的一种做法
1 0
- 【Struts2集锦】-界面访问取值赋值
- Struts2 Session中赋值与页面取值
- ViewDidLoad中取之前界面赋值,在赋值前
- jquery 取值 赋值
- jQuery 取值赋值
- Checkbox取值赋值
- jquery取值赋值
- jQuery 取值、赋值
- js_checkbox取值赋值
- datawindow赋值与取值
- Jquery表单取值赋值
- Jquery表单取值赋值
- Jquery 取值,赋值汇总
- Jquery 取值,赋值总结
- jquery 取值与赋值
- CKEditor js取值赋值
- jQuery控件取值,赋值
- Javascript对象取值赋值
- 圆形进度条代码解析
- 如何让Dialog在用户按下返回键也不消失
- Mac 10.11 安装mysql utilites source
- opencv2.2以上不支持CvvImage的解决办法
- 2016{太原网络营销师}郭文军讲解影响网站排名的因素
- 【Struts2集锦】-界面访问取值赋值
- Android应用检查更新并下载安装
- WordPress多媒体添加分类
- TIM_READ2
- 3ds文件格式转openGL
- CvArr、Mat、CvMat、IplImage、BYTE转换
- LeetCode Spiral Matrix II
- 修改grub 启动项
- Xcode7真机调试