struts2中action编写的3种方式

来源:互联网 发布:linux怎么安装vmtools 编辑:程序博客网 时间:2024/06/06 08:30

struts2作为一个成熟的控制层框架,对于控制器类的编写要求极为宽泛,也大大增加了开发的方便程度。同时,struts2还提供了一些接口和工具类来帮助大家编写action。下面我就从最简单的action类到实现接口开发action类,再到继承工具类来开发action,仅供大家参考和体会框架开发的便捷性。

方式1:手动编写action类

package com.js.action;/** * 最简单的Action=私有属性+属性的getters和setters+execute()方法 * @author jiangshuai * */public class LoginAction {//接前台参数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;}public String execute()throws Exception{if(getUsername().equals("admin")&&getPassword().equals("1")) {return "success";}else {return "error";}}}


方式2:实现Action接口

package com.js.action;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;/** * 实现Action接口的方式开发action * 该接口默认提供了一些返回值常量 * @author jiangshuai * */public class LoginAction2 implements Action {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;}@Overridepublic String execute() throws Exception {if(getUsername().equals("admin")&&getPassword().equals("1")) {ActionContext.getContext().getSession().put("user", username);return SUCCESS;}else {return ERROR;}}}


方式3:继承ActionSupport类

package com.js.action;import javax.swing.plaf.synth.SynthScrollBarUI;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;/** * 继承ActionSupport类 * 该类默认实现了Action接口和Validate接口,提供了数据校验功能 * @author jiangshuai * */public class LoginAction3 extends ActionSupport{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;}public String execute() throws Exception {if(getUsername().equals("admin")&&getPassword().equals("1")) {ActionContext.getContext().getSession().put("user", username);return SUCCESS;}else {return ERROR;}}public void validate(){System.out.println("开始校验...");if(getUsername()==null||getUsername().trim().equals("")){addFieldError("username","user.required");}if(getPassword()==null||getPassword().trim().equals("")){addFieldError("password","pass.required");}}}


原创粉丝点击