Maven 构建 Struts2 实现 基本 CURD Controller
来源:互联网 发布:安装php基础环境搭建 编辑:程序博客网 时间:2024/06/01 18:25
开发环境
- 开发工具:Eclipse
- 数据库:MySQL
- 服务器:Tomcat
Struts2 请求原理流程图
构建一个 web maven 工程,在pom.xml引入struts2的jar包
<!-- struts2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>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"><struts> <package name="userPkg" namespace="/testspace" extends="struts-default"> <!-- http://localhost:8080/manningSampleApp/packageNamespace/actionName_method --> <action name="testAction_*" class="com.gx.action.TestAction" method="{1}"> <result name="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"><struts> <include file="test.xml"></include></struts>
3.浏览器输入:http://localhost:8080/struts2curd/testspace/testAction_helloworld
4. 结果:
写控制层代码
- BaseAction
package 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> */public abstract class BaseAction<T> extends ActionSupport implements 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; }}
- SimpleMethodAction
package com.gx.base;/** * 基本curd方法的空实现,方便统一管理 * * @author always * * @param <T> */public abstract class SimpleMethodAction<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"><struts> <package name="userPkg" namespace="/user" extends="json-default"> <!-- http://localhost:8080/manningSampleApp/packageNamespace/actionName_method --> <!-- 普通用户管理 --> <action name="userAction_*" class="com.gx.web.struts2.UserAction" method="{1}"> <!-- sturts框架自动转 要在pom.xml引入 <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> <version>2.2.3</version> </dependency> --> <result type="json"> <param name="root">jsonMap</param> </result> <result name="list">/WEB-INF/jsp/user/list.jsp </result> <result name="saveUI">/WEB-INF/jsp/user/saveUI.jsp </result> <result name="toList" type="redirectAction">userAction_list</result> </action> </package></struts>
- UserAction
package 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(); /*删除,修改 用户时传来的id*/ private int userId; /*分页*/ private int pageNum = 1; @Override public 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; } @Override public String delete() { userService.delete(userId); return super.delete(); } @Override public String edit() { User model = this.getModel(); userService.update(model); return super.edit(); } @Override public String editUI() { log.info(userId); User user = userService.getById(userId); log.info(user.toString()); ActionContext.getContext().getValueStack().push(user); return super.editUI(); } @Override public String add() { User model = this.getModel(); log.info(model.toString()); userService.save(model); return super.add(); } @Override public String addUI() { return super.addUI(); } @Override public void validate() { log.info("开始校验"); super.validate(); } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public int getPageNum() { return pageNum; } public void setPageNum(int pageNum) { this.pageNum = pageNum; }}
jsp 代码
- list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>用户名列表</title><%@ include file="/WEB-INF/jsp/public/common.jspf" %></head><body><s:debug></s:debug> <div class="container"> <!-- 分页信息 --> <s:form id="pageform" action="userAction_list"> <table class="table"> <!-- 表头--> <thead> <tr> <td>用户名</td> <td>密码</td> <td>邮箱</td> <td>联系方式</td> <td>相关操作</td> </tr> </thead> <!--显示数据列表--> <tbody> <s:iterator value="recordList"> <tr> <td>${username}</td> <td>${password}</td> <td>${email}</td> <td>${telphone}</td> <td> <s:a action="userAction_delete?userId=%{id}" onclick="return confirm('您确定要删除么?')">删除</s:a> <s:a action="userAction_editUI?userId=%{id}">修改</s:a> </td> </tr> </s:iterator> <%@ include file="/WEB-INF/jsp/public/pageView.jspf" %> </tbody> </table> </s:form> <!-- 其他功能超链接 --> <div> <div> <s:a action="userAction_addUI">添加</s:a> </div> </div> </div></body></html>
- saveUI.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>用户名列表</title><%@ include file="/WEB-INF/jsp/public/common.jspf" %></head><body><s:debug></s:debug> <div class="container"> <!-- 分页信息 --> <s:form id="pageform" action="userAction_list"> <table class="table"> <!-- 表头--> <thead> <tr> <td>用户名</td> <td>密码</td> <td>邮箱</td> <td>联系方式</td> <td>相关操作</td> </tr> </thead> <!--显示数据列表--> <tbody> <s:iterator value="recordList"> <tr> <td>${username}</td> <td>${password}</td> <td>${email}</td> <td>${telphone}</td> <td> <s:a action="userAction_delete?userId=%{id}" onclick="return confirm('您确定要删除么?')">删除</s:a> <s:a action="userAction_editUI?userId=%{id}">修改</s:a> </td> </tr> </s:iterator> <%@ include file="/WEB-INF/jsp/public/pageView.jspf" %> </tbody> </table> </s:form> <!-- 其他功能超链接 --> <div> <div> <s:a action="userAction_addUI">添加</s:a> </div> </div> </div></body></html>
为了方便,在这里我没有将js与jsp代码分离,最好的做法是jsp外部引用js文件,并将引用的文件放到html代码后</body>
前
0 0
- Maven 构建 Struts2 实现 基本 CURD Controller
- Maven 构建 Struts2 实现 基本 CURD Controller层代码
- Hibernate+Maven+Struts2——实现增删查改CURD的步骤详解
- Maven - 构建Struts2项目
- 使用maven构建struts2
- 使用Maven构建Struts2项目
- 使用Maven构建Struts2项目
- Maven构建struts2路径出错
- Struts2框架基本构建,Maven工具使用以及搭建私服,Hbernate框架构建以及连接mysql数据库
- 用xml模拟数据库,并实现基本的CURD操作
- maven构建struts2+spring项目简单实例
- 详细描述用maven构建Struts2项目
- 详细描述用maven构建Struts2项目
- myeclipse使用maven构建struts2项目详解
- Maven构建Struts2+Hibernate+Spring web项目
- struts2入门 -Idea maven 构建项目
- Yii CURD 基本操作
- MyBatis 实战-使用 maven 构建(3)- 基本增删改查的实现
- eclipse生成Java注释文档
- 插入排序+冒泡排序+选择排序
- 归并排序 java语言
- Windows下使用pthread
- Linux/windows android adt自带eclipse无法设置ndk路径 jdk sdk ndk等环境配置
- Maven 构建 Struts2 实现 基本 CURD Controller
- Insertion Sort List
- Coursera Machine Learning 学习笔记(十)
- 第二周 项目四-图书馆的书
- JAVA基础(1):封装
- 互联网我来了 -- 1. Node.js 来打个招呼
- oc_study18--内存管理
- python中的基本数据类型
- 解决plsql连接oracle问题 环境变量设置