Struts CRUD

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>&nbsp;
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