Struts-setter、getter方法自动 ActionSupport类-属性驱动+模型驱动
来源:互联网 发布:数据库第六版中文答案7 编辑:程序博客网 时间:2024/06/07 18:22
【setter、getter方法自动设置获取】
属于拦截器的功能
在TestAction类里设置两个属性
bookId
bookName
在jsp页面用EL表达式输出
【ActionSupport类】
Action比较局限
实际一般都用ActionSupport类(更强大),它本身实现了Action接口。
继承extends ActionSupport
service层(.net人员称之为商业逻辑层,实际开发还需加商业规则层用于验证)
model层
【JavaBean类型】实际开发时model层有可能有几十个字段,那可以依次写出,更好的是采用JavaBean
jsp页面需要改动
通过xml交给对应的类
●checkbox传入多个值,而且不固定
如jsp页面
从页面传入多个对象的属性
如Book书的 名称、作者、价格
属于拦截器的功能
在TestAction类里设置两个属性
bookId
bookName
并且声称setter、getter方法
public class TestAction implements Action {private int bookId;private String bookName;public int getBookId() {return bookId;}public void setBookId(int bookId) {this.bookId = bookId;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("execute()是默认执行的方法");return SUCCESS;}}然后在地址栏传入参数
在jsp页面用EL表达式输出
<body>测试页面<br>${bookId }${bookName }</body>
【ActionSupport类】
Action比较局限
实际一般都用ActionSupport类(更强大),它本身实现了Action接口。
继承extends ActionSupport
package com.zhiqi.test;import com.opensymphony.xwork2.ActionSupport;public class TestActionSupport extends ActionSupport {/** * */private static final long serialVersionUID = 1L;private int bookId;private String bookName;public int getBookId() {return bookId;}public void setBookId(int bookId) {this.bookId = bookId;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("ActionSupport的execute()是默认执行的方法");return SUCCESS;}}
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="testAction" extends="struts-default"><action name="showMethod" class="com.zhiqi.test.TestActionSupport"><result name="success">test.jsp</result></action></package></struts>
【设置属性】属性驱动(基本类型+JavaBean类型)+模型驱动
实现基本的登录验证
<%@ 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="login" method="post">用户名:<input type="text" name="userName" id="userName">密 码:<input type="password" name="password" id="password"><input type="submit" value="登录"></form></body></html>通过配置xml交给对应的类处理
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="testAction" extends="struts-default"><action name="login" class="com.zhiqi.test.UserAction"><result name="success">success.jsp</result><result name="error">error.jsp</result></action></package></struts>
package com.zhiqi.test;import com.opensymphony.xwork2.ActionSupport;import com.zhiqi.model.User;import com.zhiqi.service.UserService;public class UserAction extends ActionSupport {private static final long serialVersionUID = 1L;private String userName;private String password;private UserService userService=new UserService();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;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("UserAction的默认方法");User user=new User();//替代了传统的getParameter()user.setUserName(userName);user.setPassword(password);if(userService.login(user)){return SUCCESS;}else{return ERROR;}}}
service层(.net人员称之为商业逻辑层,实际开发还需加商业规则层用于验证)
package com.zhiqi.service;import com.zhiqi.model.User;public class UserService {public boolean login(User user){if("web".equals(user.getUserName()) && "124".equals(user.getPassword())){return true;}else{return false;}}}
model层
package com.zhiqi.model;public class User {private String userName;private String password;public User() {super();// TODO Auto-generated constructor stub}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;}}
【JavaBean类型】实际开发时model层有可能有几十个字段,那可以依次写出,更好的是采用JavaBean
jsp页面需要改动
<%@ 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="login" method="post">用户名:<input type="text" name="user.userName" id="userName">密 码:<input type="password" name="user.password" id="password"><input type="submit" value="登录"></form></body></html>
通过xml交给对应的类
package com.zhiqi.test;import com.opensymphony.xwork2.ActionSupport;import com.zhiqi.model.User;import com.zhiqi.service.UserService;public class UserAction extends ActionSupport {private static final long serialVersionUID = 1L;private User user;private UserService userService=new UserService();public User getUser() {return user;}public void setUser(User user) {this.user = user;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("UserAction的默认方法");if(userService.login(user)){//直接判断return SUCCESS;}else{return ERROR;}}}JavaBean的处理更加的简洁方便
【模型驱动】implements ModelDriven<User>
有缺陷、只能接受一个JavaBean
了解
jsp页面提交
<%@ 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="login" method="post">用户名:<input type="text" name="userName" id="userName">密 码:<input type="password" name="password" id="password"><input type="submit" value="登录"></form></body></html>UserAction处理
package com.zhiqi.test;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.zhiqi.model.User;import com.zhiqi.service.UserService;public class UserAction extends ActionSupport implements ModelDriven<User> {private static final long serialVersionUID = 1L;private User user=new User();//需要newprivate UserService userService=new UserService();//public User getUser() {//return user;//}//public void setUser(User user) {//this.user = user;//}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("UserAction的默认方法");if(userService.login(user)){//直接判断return SUCCESS;}else{return ERROR;}}@Overridepublic User getModel() {//自动设置一个JavaBean// TODO Auto-generated method stubreturn user;}}
●checkbox传入多个值,而且不固定
如jsp页面
<form action="hobby" method="post">爱好:<input type="checkbox" name="hobby" value="游泳">游泳<input type="checkbox" name="hobby" value="登山">登山<input type="checkbox" name="hobby" value="滑行">滑行<input type="checkbox" name="hobby" value="读书">读书<input type="checkbox" name="hobby" value="音乐">音乐<input type="submit" value="确定"></form>通过struts.xml配置
<action name="hobby" class="com.zhiqi.test.HobbyAction"><result name="success">success.jsp</result></action>传入HobbyAction时用String[],即String数组来处理
package com.zhiqi.test;import com.opensymphony.xwork2.ActionSupport;public class HobbyAction extends ActionSupport {/** * */private static final long serialVersionUID = 1L;private String [] hobby;public String[] getHobby() {return hobby;}public void setHobby(String[] hobby) {this.hobby = hobby;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubfor(String h:hobby){System.out.println(h);}return SUCCESS;}}
从页面传入多个对象的属性
如Book书的 名称、作者、价格
<body><h3>输入图书信息,要求可以输入多个,不要一本一本的添加</h3><form action="addBooks" method="post"><table><tr><td>图书名称</td><td>图书作者</td><td>图书价格</td></tr><tr><td><input type="text" name="books[0].bookName" /></td><td><input type="text" name="books[0].bookAuthor" /></td><td><input type="text" name="books[0].bookPrice" /></td></tr><tr><td><input type="text" name="books[1].bookName" /></td><td><input type="text" name="books[1].bookAuthor" /></td><td><input type="text" name="books[1].bookPrice" /></td></tr><tr><td><input type="submit" value="提交" /></td><td></td><td></td></tr></table></form></body>
<action name="addBooks" class="com.zhiqi.test.AddBooksAction"><result name="success">success.jsp</result></action>此时Struts提供了集合,如用ArrayList<Book>来接收
package com.zhiqi.test;import java.util.ArrayList;import com.opensymphony.xwork2.ActionSupport;import com.zhiqi.model.Book;public class AddBooksAction extends ActionSupport {/** * */private static final long serialVersionUID = 1L;private ArrayList<Book> books;public ArrayList<Book> getBooks() {return books;}public void setBooks(ArrayList<Book> books) {this.books = books;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubfor(Book b:books){System.out.println(b);}return SUCCESS;}}
0 0
- Struts-setter、getter方法自动 ActionSupport类-属性驱动+模型驱动
- Eclipse中setter/getter方法自动添加属性注释
- Struts属性和模型驱动
- struts属性驱动与模型驱动
- struts模型驱动和属性驱动
- scala属性的getter和setter方法
- property属性的setter、getter方法
- eclipse-自动生成getter和setter方法
- Eclipse 自动添加GETTER SETTER 方法
- Struts属性驱动与模型驱动的区别
- struts模型驱动和属性驱动冲突的问题
- 属性getter和setter
- 属性getter和setter
- Objective-C,ios,属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- Struts模型驱动
- Struts模型驱动
- struts驱动模型方式
- Socket类的getter和setter方法
- 安装JDK,配置环境变量
- java代码规范
- UVA 147 Dollars (子集和问题 & DP)
- 1038. Recover the Smallest Number (30)
- 104. Maximum Depth of Binary Tree | 二叉树的深度
- Struts-setter、getter方法自动 ActionSupport类-属性驱动+模型驱动
- scala循环遍历
- Charles将指定的请求改为固定返回值
- pat a1002
- Fliptile [反转问题][dfs]
- 算法训练 6-1 递归求二项式系数值
- 初始结构体,计算量点距离
- HDU3065 病毒侵袭持续中(AC自动机)
- 在QT中引用Shark Machine Learning library