Maven 构建 Struts2 实现 基本 CURD Controller层代码

开发环境Struts2 请求原理流程图

构建一个 web maven 工程,在pom.xml引入struts2的jar包>org.apache.struts>2.3.1.2</version></dependency>在 web.xml 文件中引入struts2的过滤器 <filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>测试流程创建一个TestAction类package com.gx.action;public class TestAction {public String helloworld(){return “hello”;}}

2.在resources下创建struts.xml和test.xml文件

test.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”>=====”hello”>/WEB-INF/test.jsp</result></action><!–<action …–></package></struts>在struts.xml文件中引入user.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”>=>

3.浏览器输入::8080/struts2curd/testspace/testAction_helloworld 4. 结果:

写控制层代码BaseActionpackage com.gx.base;import java.lang.reflect.ParameterizedType;import java.util.HashMap;import java.util.Map;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;/** * * BaseAction类 *继承ActionSupport和实现了ModelDriven接口 * @author always * * @param <T> */< ModelDriven<T>{protected T model=null;protected Class<T> modelClass;/*存放json数据,用来实现ajax*/protected Map<String, Object> jsonMap=new HashMap<String, Object>();public BaseAction(){ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();modelClass=(Class) pt.getActualTypeArguments()[0];}public T getModel() {if(model==null){try {model=modelClass.newInstance();} catch (final Exception e) {LOG.error(e.getMessage());}}return model;}public Map<String, Object> getDataMap() {return jsonMap;}public void setJsonMap(Map<String, Object> jsonMap{this.jsonMap = jsonMap;}}SimpleMethodActionpackage com.gx.base;/** * 基本curd方法的空实现,方便统一管理 * * @author always * * @param <T> */public <T> extends BaseAction<T>{/*** 列表* @return*list.jsp*/public String list(){return “list”;}/*** 删除* @return*toList–>actionName_list–>list.jsp(user.xml中配置)*/public String delete(){return “toList”;}/*** 修改* @return*toList–>actionName_list–>list.jsp*/public String edit(){return “toList”;}/*** 修改页面* @return*saveUI.jsp*/public String editUI(){return “saveUI”;}/*** 添加* @return*toList–>actionName_list–>list.jsp**/public String add(){return “toList”;}/*** 添加页面* @return*saveUI.jsp*/public String addUI(){return “saveUI”;}}user.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”>====”{1}”><!–sturts框架自动转要在pom.xml引入<dependency><groupId>org.apache.struts</groupId><artifactId>struts2-json-plugin</artifactId><version>2.2.3</version></dependency>–>==”list”>/WEB-INF/jsp/user/list.jsp=”saveUI”>/WEB-INF/jsp/user/saveUI.jsp=></package></struts>UserActionpackage com.gx.web.struts2;import org.apache.log4j.Logger;import com.gx.base.SimpleMethodAction;import com.gx.domain.PageBean;import com.gx.domain.User;import com.gx.service.UserService;import com.gx.service.impl.UserServiceImpl;import com.opensymphony.xwork2.ActionContext;/** * 继承SimpleMethodAction * @author always * */public class UserAction extends SimpleMethodAction<User> {/****/private static final long serialVersionUID = -8771772792039694213L;static Logger log = Logger.getLogger(UserAction.class);private UserService userService = new UserServiceImpl();userId;pageNum = 1;@Overridepublic String list() {ActionContext ac = ActionContext.getContext();PageBean pageBean = userService.getPageBean(pageNum, 5);ac.getValueStack().push(pageBean);return super.list();}public String listJson() {jsonMap.clear();ActionContext ac = ActionContext.getContext();PageBean pageBean = userService.getPageBean(pageNum, 5);jsonMap.put(“pageBean”, pageBean);jsonMap.put(“success”, true);return SUCCESS;}@Overridepublic String delete() {userService.delete(userId);return super.delete();}@Overridepublic String edit() {User model = this.getModel();userService.update(model);return super.edit();}@Overridepublic String editUI() {log.info(userId);User user = userService.getById(userId);log.info(user.toString());ActionContext.getContext().getValueStack().push(user);return super.editUI();}@Overridepublic String add() {User model = this.getModel();log.info(model.toString());userService.save(model);return super.add();}@Overridepublic String addUI() {return super.addUI();}@Override() {log.info(“开始校验”);super.validate();}() {return userId;}(int userId) {this.userId = userId;}() {return pageNum;}(int pageNum) {this.pageNum = pageNum;}}jsp 代码list.jsp>>>==>>密码>联系方式>>>>${email}>==>>>=>>saveUI.jsp>>>==>>密码>联系方式>>>>${email}>==>>>=>>

为了方便,在这里我没有将js与jsp代码分离,,最好的做法是jsp外部引用js文件,并将引用的文件放到html代码后</body>前

我知道有一种爱情,叫做与你白头,有一种幸福,叫做和你相伴。

Maven 构建 Struts2 实现 基本 CURD Controller层代码

相关文章:

你感兴趣的文章:

标签云: