• 一个简单的SSM框架实例(使用IDEA)


    快速搭建SSM项目

    开发环境:jdk1.8、服务器Tomcat8、项目管理工具apache-maven-3.6.0、MySQL数据库

    1、新建项目:

    选择【Maven】,勾选【Create from archetype】,选择【maven-archetype-webapp】  (可以选择jdk),具体如下图:

    填写【GroupId】和【ArtifactId】等信息,具体如下图:

    在【Maven home directory】中选择Maven的安装路径,在【User settings】和【Local repository】中选择Maven的配置文件和仓库的位置(尽量不要使用默认的位置,因为它是放在C盘,需要在Maven文件夹中创建一个文件夹repository),在【Properties】属性列表中添加属性名name:archetypeCatalog,Value:internal,具体如下图:

    点击【Finish】,如下图:

    创建完成后,在/src/main目录下创建java和resource目录,将java标记为Sources Root、resource标记为Resources Root,具体如下:

    2、集成Spring

    在pom文件中添加Spring相关的依赖,具体代码如下:

      <properties>
        <spring.version>5.0.5.RELEASE</spring.version>
      </properties>
    
    <!--spring start-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aspects</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-expression</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-test</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${spring.version}</version>
        </dependency>
    <!--    spring end-->

    在/src/main/resources目录下创建applicationContext.xml配置文件,具体代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <context:component-scan base-package="com"/>
    <!-- <context:component-scan/>注解:扫描base-package包或者子包下所有的Java类,并把匹配的Java类注册成Bean。这里我们设置成扫描com包下所有的Java类 -->
    </beans>

    在web.xml配置文件中添加如下代码:

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
    <!--<web-app>-->
      <display-name>Archetype Created Web Application</display-name>
    
    <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
    </web-app>

    3、集成Spring MVC框架

    在pom.xml添加相关依赖,具体代码如下:

      <properties>
        <javax.servlet.version>4.0.0</javax.servlet.version>
        <jstl.version>1.2</jstl.version>
      </properties>
    
          <dependency>
              <groupId>jstl</groupId>
              <artifactId>jstl</artifactId>
              <version>1.2</version>
          </dependency>
    
          <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>${javax.servlet.version}</version>
          </dependency>
    
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>${spring.version}</version>
          </dependency>
    <!--      spring mvc end-->

    在web.xml配置文件中添加DispatcherServlet配置,具体代码如下:

    DispatcherServlet类:DispatcherServlet是前置控制器,主要用于拦截匹配的请求,拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理。

      <!--  配置DispatcherServlet-->
      <servlet>
        <servlet-name>spring-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--    配置SpringMVC需要加载的配置文件spring-mvc.xml-->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
    <servlet-mapping> <servlet-name>spring-dispatcher</servlet-name>
    <!--匹配以.do为后缀的所有请求 --> <url-pattern>*.do</url-pattern> </servlet-mapping>

    在/src/main/resources目录下创建配置文件spring-mvc.xml,具体代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:aop="http://www.springframework.org/schema/aop"
    
           xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/context
             http://www.springframework.org/schema/context/spring-context.xsd
             http://www.springframework.org/schema/mvc
             http://www.springframework.org/schema/mvc/spring-mvc.xsd
             http://www.springframework.org/schema/aop
             http://www.springframework.org/schema/aop/spring-aop.xsd
             ">
    <!-- 扫描controller(后端控制器),并且扫描其中的注解 -->
        <context:component-scan base-package="com.controller"/>
    <!--    设置配置方案-->
        <!--开启注解-->
        <mvc:annotation-driven/>

    <!-- 配置JSP 显示ViewResolver(视图解析器) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/"/> <property name="suffix" value=".jsp"/> </bean> </beans>

    4、集成MyBatis框架

    在pom.xml文件中添加相关依赖,具体代码如下:

      <properties>
        <mybatis.version>3.4.6</mybatis.version>
        <mysql.connector.java.version>8.0.9-rc</mysql.connector.java.version>
        <druid.version>1.1.9</druid.version>
        <mybatis.spring.version>1.3.2</mybatis.spring.version>
      </properties>
    
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>${mysql.connector.java.version}</version>
              <scope>runtime</scope>
          </dependency>
          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid</artifactId>
              <version>${druid.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>${mybatis.spring.version}</version>
          </dependency>
    <!--      mybatis end-->

    在/src/main/resources目录下创建jdbc.properties配置文件,具体代码如下:

    #驱动
    jdbc.driverClassName=com.mysql.cj.jdbc.Driver
    #mysql连接信息
    jdbc.url=jdbc:mysql://127.0.0.1:3306/goodsapplydb?serverTimezone=GMT
    #goodsapplydb为数据库名称
    #用户名
    jdbc.username=root
    #密码
    jdbc.password=123456

    在applicationContext.xml配置文件中添加如下配置,具体代码如下:

    <!--    1、配置数据库相关参数-->
        <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/>
    <!--    2、数据源druid-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <property name="driverClassName" value="${jdbc.driverClassName}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
    <!--    3、配置SqlSessionFactory对象-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--        注入数据库连接池-->
            <property name="dataSource" ref="dataSource"/>
    <!--        扫描sql配置文件:mapper需要的xml文件-->
            <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        </bean>
    
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
            <constructor-arg index="0" ref="sqlSessionFactory"/>
        </bean>
    <!--    扫描basePackage下所有以@MyBatisDao注解的接口-->
        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
            <property name="basePackage" value="com.dao"/>
        </bean>

    5、集成Log4j日志框架

    在pom.xml中添加相关依赖,具体代码如下:

      <properties>
        <slf4j.version>1.7.7</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
      </properties>
    
          <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>${log4j.version}</version>
          </dependency>
          <dependency>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-api</artifactId>
              <version>${slf4j.version}</version>
          </dependency>
          <dependency>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-log4j12</artifactId>
              <version>${slf4j.version}</version>
          </dependency>
    <!--      log4j2 end-->

    在/src/main/resources目录下创建log4j.properties配置文件,具体代码如下:

    #log levels
    log4j.rootLogger = DEBUG,Console
    
    #输出到控制台
    log4j.appender.Console = org.apache.log4j.ConsoleAppender
    log4j.appender.Console.Target = System.out
    log4j.appender.Console.layout = org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n

     6、配置服务器

    在IDEA开发菜单栏中,选择【run】—>【Edit Configuration】,点击【+】—>【Tomcat Server】—>【Local】,在【Aplication server】中选择Tomcat的安装路径,在【JRE】中选择JDK的安装路径。

     

    点击【Deployment】—>【+】—>【Artifact】

     选择 【下图中选择的】

     下图中画红线的地方  删掉(我之前因为没有删掉 就总是报错)

     注意下图画红线的地方,在【Deployment】配置好之后,改变下图中的地方。设置这个的目的是:在修改一些东西之后就只需要在浏览器上面刷新一下就可以了,不需要改一点东西重新运行一下程序。

    配置好服务器之后,就可以运行程序了。

    结果如下图:

    下面开发一个比较复杂的画面,将数据库中的数据查询出来显示在画面上

    下图为项目的目录:  注意静态资源文件,如css、js等,最好放在webapp目录下面,之前我是放在WEB-INF下面,最后文件总是获取不到

    在model目录下创建数据表的实体类

    package com.model;
    
    import java.io.Serializable;
    
    public class goodsApply implements Serializable {
        //属性首字母需小写 否则在JSP画面中获取时,会报错
        private Integer id;
        private String goodsName;
        private String claimant;
        private String applyTime;
        private String unit;
        private Integer quantity;
        private Integer isApply;
        private String comment;
    
        public Integer getId() {
            return id;
        }
    
        public String getApplyTime() {
            return applyTime;
        }
    
        public String getClaimant() {
            return claimant;
        }
    
        public Integer getIsApply() {
            return isApply;
        }
    
        public String getGoodsName() {
            return goodsName;
        }
    
        public String getUnit() {
            return unit;
        }
    
        public Integer getQuantity() {
            return quantity;
        }
    
        public String getComment() {
            return comment;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public void setApplyTime(String applyTime) {
            this.applyTime = applyTime;
        }
    
        public void setClaimant(String claimant) {
            this.claimant = claimant;
        }
    
        public void setComment(String comment) {
            this.comment = comment;
        }
    
        public void setGoodsName(String goodsName) {
            this.goodsName = goodsName;
        }
    
        public void setIsApply(Integer isApply) {
            this.isApply = isApply;
        }
    
        public void setQuantity(Integer quantity) {
            this.quantity = quantity;
        }
    
        public void setUnit(String unit) {
            this.unit = unit;
        }
    }

    在【dao】目录下创建相应接口,该接口与之后的...mapper.xml文件有关

    package com.dao;
    
    import com.model.goodsApply;
    import org.apache.ibatis.annotations.Param;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public interface GoodsApplyDao {
        List<goodsApply> findAll();
    
        int delGoods(@Param("id") int id);
    
        goodsApply findGoodsById(@Param("id") int id);
    
        int addGoods(goodsApply goods);
    
        int updateGoods(goodsApply goods);
    }

    在【mapper】目录下创建与表相关的mapper文件

    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.dao.GoodsApplyDao">
    
        <sql id="goodsApplyField">
            ${prefix}.id as "id",
            ${prefix}.goodsName as "goodsName",
            ${prefix}.claimant as "claimant",
            ${prefix}.applyTime as "applyTime",
            ${prefix}.unit as "unit",
            ${prefix}.quantity as "quantity",
            ${prefix}.isApply as "isApply",
            ${prefix}.comment as "comment"
        </sql>
    <!--    获取所有物品申请记录-->
        <resultMap id="goodsApplyMap" type="com.model.goodsApply">
            <id property="id" column="id"/>
            <id property="goodsName" column="goodsName"/>
            <id property="claimant" column="claimant"/>
            <id property="applyTime" column="applyTime"/>
            <id property="unit" column="unit"/>
            <id property="quantity" column="quantity"/>
            <id property="isApply" column="isApply"/>
            <id property="comment" column="comment"/>
        </resultMap>
    <!-- 下面的id与dao文件中的方法名称相同 --> <select id="findAll" resultMap="goodsApplyMap"> select <include refid="goodsApplyField"> <property name="prefix" value="a"/> </include> from goodsApplyTb as a </select>
    <!-- 根据id删除一条物品记录--> <delete id="delGoods" parameterType="int"> delete from goodsApplyTb where id=#{id} </delete> <!-- 根据id查询一条物品记录--> <select id="findGoodsById" resultMap="goodsApplyMap" parameterType="int"> select <include refid="goodsApplyField"> <property name="prefix" value="a"/> </include> from goodsApplyTb as a where id=#{id} </select> <!-- 新增一条记录--> <insert id="addGoods" useGeneratedKeys="true" keyProperty="id" parameterType="com.model.goodsApply"> insert into goodsApplyTb(goodsName,claimant,applyTime,unit,quantity,isApply,comment) value(#{goodsName},#{claimant},#{applyTime},#{unit},#{quantity},#{isApply},#{comment}) </insert> <!-- 修改一条记录--> <update id="updateGoods" parameterType="com.model.goodsApply"> update goodsApplyTb set goodsName=#{goodsName}, claimant=#{claimant}, applyTime=#{applyTime}, unit=#{unit}, quantity=#{quantity}, isApply=#{isApply}, comment=#{comment} where id=#{id} </update> </mapper>

    在【service】目录下创建相应的接口

    package com.service;
    
    import com.model.goodsApply;
    
    import java.util.List;
    
    public interface GoodsApplyService {
        List<goodsApply> findAll();
    
        int delGoods(int id);
    
        goodsApply findGoodsById(int id);
    
        int addGoods(goodsApply goods);
    
        int updateGoods(goodsApply goods);
    }

    在【impl】目录下创建相应的service接口的实现类

    package com.service.impl;
    
    import com.dao.GoodsApplyDao;
    import com.model.goodsApply;
    import com.service.GoodsApplyService;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @Service
    public class GoodsApplyServiceImpl implements GoodsApplyService {
    
        @Resource
        private GoodsApplyDao goodsApplyDao;
    
        public List<goodsApply> findAll(){
            return goodsApplyDao.findAll();
        }
    
        public int delGoods(int id){
            return goodsApplyDao.delGoods(id);
        }
    
        public goodsApply findGoodsById(int id){
            return goodsApplyDao.findGoodsById(id);
        }
    
        public int addGoods(goodsApply goods){
            return goodsApplyDao.addGoods(goods);
        }
    
        public int updateGoods(goodsApply goods){
            return goodsApplyDao.updateGoods(goods);
        }
    }

    在【controller】目录下创建controlle类

    import com.model.goodsApply;
    import com.service.GoodsApplyService;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    import java.util.List;
    
    import static java.lang.Integer.parseInt;
    
    @Controller
    public class GoodsApplyController {
    
        @Resource
        private GoodsApplyService goodsApplyService;
    
        @GetMapping("/goodsList.do")
        public ModelAndView findAll(){
            List<goodsApply> goodsApplyList=goodsApplyService.findAll();
            // for (goodsApply goods : goodsApplyList) {
            //     System.out.println(goods.getClaimant()+"申请了"+goods.getGoodsName());
            // }
            ModelAndView mv = new ModelAndView();
            mv.addObject("goodsApplyList",goodsApplyList);
    //将查询到的数据返回到画面
    mv.setViewName("goodsList"); return mv; } }

    下面是相应的jsp画面

    在index.jsp中直接跳转到goodsList.jsp画面

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>
    <%
    String path = request.getContextPath();
    // http://localhost:8080
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML>
    <html>
    <head>
        <base href="<%=basePath%>">
        <script type="text/javascript">
            window.location = "<%=basePath%>goodsList.do";
        </script>
    </head>
    <body>
    <h2>Hello World!</h2>
    </body>
    </html>

    下面为goodsList.jsp画面

    <%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ page import="com.model.goodsApply" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                + request.getServerName() + ":" + request.getServerPort()
                + path+"/";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <%--    <base href="<%=basePath%>">--%>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>物品申请</title>
        <link rel="stylesheet" href="<%=path%>/css/goodsList.css">
        <link href="<%=path%>/css/jquery-confirm.min.css" rel="stylesheet">
        <script src="<%=path%>/js/jquery.min.js" type="text/javascript"></script>
        <script src="<%=path%>/js/jquery-confirm.min.js" type="text/javascript"></script>
        <script type="text/javascript">
    
            //删除操作
            function del(obj) {
                $('.delete').confirm({
                    title: '提示!',
                    content: '您确定要删除这条数据?',
                    type:'green',
                    buttons: {
                        确定: function () {
                            var id = $(obj).attr("rel");
                            window.location = "<%=basePath%>goodsDel.do?id=" + id;
                        },
                        取消: function () {
                            // $.alert('取消!');
                        }
                    }
                });
            }
            // 跳转新增页面
            function addGoods() {
                window.location="<%=basePath%>addGoods.do";
            }
            // 修改记录
            function updateGoods(obj) {
                var id = $(obj).attr("rel");
                window.location = "<%=basePath%>selectGoods.do?id=" + id;
            }
        </script>
    </head>
    <body>
        <div class="content">
            <div>
                <input type="button"  value="新增" class="button" onclick="addGoods()">
                <input type="hidden" value="${delete_result}" id="del_result">
                <input type="hidden" value="${insert_result}" id="ins_result">
                <input type="hidden" value="${update_result}" id="upd_result">
            </div>
            <table id="goodsContent">
                <thead>
                    <tr>
                        <th class="table-goodsname">物品名称</th>
                        <th class="table-claimant">申领人</th>
                        <th class="table-applyTime">申领时间</th>
                        <th class="table-unit">单位</th>
                        <th class="table-quantity">数量</th>
                        <th class="table-isApply">已领</th>
                        <th class="table-operate">操作</th>
                    </tr>
                </thead>
                <tbody>
                    <c:if test="${empty goodsApplyList}">
                        <tr>
                            <td colspan="7" style="color: red"><b>没有数据!</b></td>
                        </tr>
                    </c:if>
                    <c:forEach var="goodsApply" items="${goodsApplyList}">
                        <tr>
                            <td>${goodsApply.goodsName}</td>
                            <td>${goodsApply.claimant}</td>
                            <td>${goodsApply.applyTime}</td>
                            <td>${goodsApply.unit}</td>
                            <td>${goodsApply.quantity}</td>
                            <td id="isApply">${goodsApply.isApply}</td>
                            <td>
                                <input type="hidden" value="${goodsApply.id}" id="goodsId">
                                <a href="javascript:void(0)" class="operate alter" id="update" rel="${goodsApply.id}" onclick="updateGoods(this)">修改</a>
                                <a href="javascript:void(0)" class="operate delete" id="delete" rel="${goodsApply.id}" onclick="del(this)">删除</a>
                            </td>
                        </tr>
                    </c:forEach>
                </tbody>
            </table>
        </div>
    <script type="text/javascript">
        var del_result = $('#del_result').val();
        if(del_result==="success"){
            alert("删除成功!");
        }
        if(del_result==="failed"){
            alert("删除失败!");
        }
    
        var ins_result=$('#ins_result').val();
        if(ins_result==="success"){
            alert("新增成功!");
        }
    
        var upd_result = $('#upd_result').val();
        if(upd_result==="success"){
            alert("修改成功!");
        }
        if(upd_result==="failed"){
            alert("修改失败!");
        }
    
        $(document).ready(function () {
            $('#goodsContent tr').each(function () {
                var isApply=$(this).children('td:eq(5)').text();
    
                if(isApply==="1"){
                    $(this).children('td:eq(5)').html('是');
                    // 当已经领用了的,不允许再删除 把删除按钮禁用
                    $(this).children('td:eq(6)').find('#delete').css("cursor","default");
                    $(this).children('td:eq(6)').find('#delete').css("color","grey");
                    $(this).children('td:eq(6)').find('#delete').removeAttr("onclick");
                }
                else {
                    $(this).children('td:eq(5)').html('否');
                }
            });
        });
    
    </script>
    </body>
    </html>

    最后还需要改一下web.xml文件。

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
    <!--<web-app>-->
    <!--将web-app改为上面的-->

    如果不改,会是下图这种情况

    程序运行结果如下图

    该程序还有新增、修改以及删除功能,具体可以下载全部程序查看

    https://pan.baidu.com/s/15Jjrd4P6oWpa9gRLm2XLiQ

  • 相关阅读:
    打开XX.etl文件
    ubuntu 安装 openssh-server,xinetd,vmware tools
    ESXi时间同步
    常用正则表达式字符说明
    RPC 服务器不可用
    linux 常用命令
    解决RDP连接不上
    python数据持久存储-pickle模块
    lambda表达式/对象引用计数
    关闭网络打开远程文件时防火墙安全弹窗
  • 原文地址:https://www.cnblogs.com/209yin/p/11374216.html
Copyright © 2020-2023  润新知