• 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>

    修改

    删除

    新增

  • 相关阅读:
    python迭代器
    初识html
    跨域(jsonp)方法
    闭包
    pycharm软件配置
    插槽slot
    git常用操作
    在mac中使用Charles抓包操作
    防止网页被嵌入框架
    H5唤起APP
  • 原文地址:https://www.cnblogs.com/xcn123/p/11261599.html
Copyright © 2020-2023  润新知