Struts CRUD
利用struts完成增删改查
思路:
1、导入相关的pom依赖(struts、自定义标签库的依赖)
2、分页的tag类导入、z.tld、完成web.xml的配置
3、dao层去访问数据
4、web层去调用dao层给前台返回数据
5、在struts_sy.xml进行配置
6、写jsp
1、导入相关的pom依赖(struts、自定义标签库的依赖)
1 <!-- 5.3、jstl、standard --> 2 <dependency> 3 <groupId>jstl</groupId> 4 <artifactId>jstl</artifactId> 5 <version>1.2</version> 6 </dependency> 7 <dependency> 8 <groupId>taglibs</groupId> 9 <artifactId>standard</artifactId> 10 <version>1.1.2</version> 11 </dependency> 12 13 <!-- 5.4、tomcat-jsp-api --> 14 <dependency> 15 <groupId>org.apache.tomcat</groupId> 16 <artifactId>tomcat-jsp-api</artifactId> 17 <version>8.0.47</version> 18 </dependency>
2、分页的tag类导入、z.tld、完成web.xml的配置
3、dao层去访问数据
编写实体类clazz,java
1 package com.crud.entity; 2 3 public class clazz { 4 5 private int cid; 6 private String cname; 7 private String cteather; 8 private String pic; 9 public int getCid() { 10 return cid; 11 } 12 public void setCid(int cid) { 13 this.cid = cid; 14 } 15 public String getCname() { 16 return cname; 17 } 18 public void setCname(String cname) { 19 this.cname = cname; 20 } 21 public String getCteather() { 22 return cteather; 23 } 24 public void setCteather(String cteather) { 25 this.cteather = cteather; 26 } 27 public String getPic() { 28 return pic; 29 } 30 public void setPic(String pic) { 31 this.pic = pic; 32 } 33 @Override 34 public String toString() { 35 return "clazz [cid=" + cid + ", cname=" + cname + ", cteather=" + cteather + ", pic=" + pic + "]"; 36 } 37 38 39 }
dao层Clazzdao增删改查继承BaseDao
1 package com.crud.dao; 2 3 import java.sql.ResultSet; 4 import java.sql.SQLException; 5 import java.util.List; 6 7 import com.crud.entity.Clazz; 8 import com.crud.util.BaseDao; 9 import com.crud.util.PageBean; 10 import com.crud.util.StringUtils; 11 12 public class Clazzdao extends BaseDao<Clazz> { 13 14 //查询 15 public List<Clazz> list(Clazz clazz, PageBean pagebean) throws Exception, Exception, SQLException{ 16 String sql = "select * from t_struts_class where true "; 17 String cname = clazz.getCname(); 18 int cid = clazz.getCid(); 19 if (cid != 0) { 20 sql +=" and cid = "+cid; 21 } 22 if (StringUtils.isNotBlank(cname)) { 23 sql += " and cname like ‘%"+cname+"%‘"; 24 } 25 return super.executeQuery(sql, Clazz.class, pagebean); 26 } 27 28 //增加 29 public int add(Clazz clazz) throws NoSuchFieldException, Exception { 30 String sql = "insert into t_struts_class values(?,?,?,?)"; 31 return super.executeUpdate(sql, new String[] {"cid","cname","cteacher","pic"}, clazz); 32 33 } 34 35 //删除 36 public int del(Clazz clazz) throws NoSuchFieldException, Exception { 37 String sql = "delete from t_struts_class where cid = ?"; 38 return super.executeUpdate(sql, new String[] {"cid"}, clazz); 39 40 } 41 42 //改 43 public int edit(Clazz clazz) throws NoSuchFieldException, Exception { 44 String sql = "update t_struts_class set cname = ?,cteacher = ?,pic = ? where cid = ?"; 45 return super.executeUpdate(sql, new String[] {"cid","cname","cteacher","pic"}, clazz); 46 47 } 48 49 50 }
4、web层去调用dao层给前台返回数据
ClazzAction
1 package com.crud.web; 2 3 import java.util.List; 4 5 import com.crud.dao.Clazzdao; 6 import com.crud.entity.Clazz; 7 import com.crud.util.BaseAction; 8 import com.crud.util.PageBean; 9 import com.opensymphony.xwork2.ModelDriven; 10 11 public class ClazzAction extends BaseAction implements ModelDriven<Clazz>{ 12 13 private Clazz clz = new Clazz(); 14 private Clazzdao clzdao = new Clazzdao(); 15 16 public String list() { 17 PageBean pageBean = new PageBean(); 18 pageBean.setRequest(request); 19 try { 20 List<Clazz> list = this.clzdao.list(clz, pageBean); 21 request.setAttribute("clzList", list); 22 request.setAttribute("pageBean", pageBean); 23 } catch (Exception e) { 24 // TODO Auto-generated catch block 25 e.printStackTrace(); 26 } 27 return "list"; 28 } 29 30 /** 31 * 跳转编辑页面 32 * @return 33 */ 34 public String preSave() { 35 if(clz.getCid() != 0) { 36 try { 37 this.result = this.clzdao.list(clz, null).get(0); 38 } catch (Exception e) { 39 // TODO Auto-generated catch block 40 e.printStackTrace(); 41 } 42 } 43 44 return "preSave"; 45 } 46 47 public String add() { 48 try { 49 this.code = this.clzdao.add(clz); 50 } catch (Exception e) { 51 // TODO Auto-generated catch block 52 e.printStackTrace(); 53 } 54 55 return "toList"; 56 } 57 58 public String edit() { 59 try { 60 this.clzdao.edit(clz); 61 } catch (Exception e) { 62 // TODO Auto-generated catch block 63 e.printStackTrace(); 64 } 65 return "toList"; 66 } 67 68 public String del() { 69 try { 70 this.clzdao.del(clz); 71 } catch (Exception e) { 72 // TODO Auto-generated catch block 73 e.printStackTrace(); 74 } 75 return "toList"; 76 } 77 78 @Override 79 public Clazz getModel() { 80 // TODO Auto-generated method stub 81 return clz; 82 } 83 }
5、在struts_sy.xml进行配置
chain:Action链式处理的结果类型,也就是将结果转发到这个action中。
redirect:实际上dispatcher和redirect的区别就是在于转发和重定向的区别。
redirectAction:用于直接redirectaction。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4 "http://struts.apache.org/dtds/struts-2.5.dtd"> 5 <struts> 6 <package name="sy" extends="base" namespace="/sy"> 7 <action name="/clz_*" class="com.crud.web.ClazzAction" method="{1}"> 8 <result name="list">/clazzList.jsp</result> 9 <result name="preSave">/clzEdit.jsp</result> 10 <result name="toList" type="redirectAction">/clz_list</result> 11 12 </action> 13 </package> 14 </struts>
6、写jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 4 <%@ taglib uri="/zking" prefix="z" %> 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <title>班级主界面</title> 10 </head> 11 <body> 12 <h2>小说目录</h2> 13 <br> 14 15 <form action="${pageContext.request.contextPath}/sy/clazz_list.action" 16 method="post"> 17 班级名称:<input type="text" name="cname"> <input type="submit" 18 value="确定"> 19 <input type="hidden" name="rows" value="15"> 20 </form> 21 <a href="${pageContext.request.contextPath}/sy/clazz_preSave.action">增加</a> 22 <table border="1" width="100%"> 23 <tr> 24 <td>编号</td> 25 <td>班级名称</td> 26 <td>教员</td> 27 <td>班级图片</td> 28 <td>操作</td> 29 </tr> 30 <c:forEach items="${clazzList }" var="c"> 31 <tr> 32 <td>${c.cid }</td> 33 <td>${c.cname }</td> 34 <td>${c.cteacher }</td> 35 <td>${c.pic }</td> 36 <td> 37 <a href="${pageContext.request.contextPath}/sy/clazz_preSave.action?cid=${c.cid}">修改</a> 38 <a href="${pageContext.request.contextPath}/sy/clazz_del.action?cid=${c.cid}">删除</a> 39 <a href="${pageContext.request.contextPath}/sy/clazz_preUpload.action?cid=${c.cid}">图片上传</a> 40 </td> 41 </tr> 42 </c:forEach> 43 </table> 44 45 <z:page pageBean="${pageBean }"></z:page> 46 47 </body> 48 </html>
clzEdit.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>班级编辑界面</title> 8 </head> 9 <body> 10 <form action="${pageContext.request.contextPath}${result.cname == null ? ‘/sy/clazz_add.action‘ : ‘/sy/clazz_edit.action‘ }" method="post"> 11 12 cid:<input type="text" name="cid" value="${result.cid }"><br> 13 cname:<input type="text" name="cname" value="${result.cname }"><br> 14 cteacher:<input type="text" name="cteacher" value="${result.cteacher }"><br> 15 <input type="submit"> 16 </form> 17 </body> 18 </html>
原文:https://www.cnblogs.com/xcn123/p/11261599.html