Struts CRUD

Struts CRUD

Using struts complete CRUD
ideas:
1, introduced related pom dependent (struts, custom tag library dependencies)
2, Tag class introduced tab, z.tld, complete web.xml configuration
3, dao layer to access data
4, web layer to call the front desk to return data dao layer
5, configured in struts_sy.xml
. 6, write jsp

1, into the associated dependent pom (Struts, custom tag library dependencies)

 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 classes into the tab, z.tld, complete configuration web.xml

 

 3, dao layer to access data

Write entity class 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>

 

Guess you like

Origin www.cnblogs.com/xcn123/p/11261599.html