• Spring


     新建一个名为ssm的Dynamic Web Project,并生成web.xml。

    将ssm整合所有用的jar包都引入(复制)到项目下WebRoot下WEB-INF下的lib下。

    一. 先从数据层Mybatis开始整合。

    在ssm project下建一个名为config的source folder。

    在config下创建一个名为com.rl.mapper的Package,Package下创建好PersonMapper.xml,保留好动态增删改查的语句

    在config下拉入log4j.properties

    在config下创建并写好sqlMapConfig.xml,其中<environments>标签都不要了,用spring管理。<settings>(包括延迟加载什么的)也不要了,只要typeAliases别名和mappers(引入配置文件)。

    二. Spring整合

    在config下创建beans.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:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">                            
            
            <!-- 
                扫到rl那一层
            -->
            <context:component-scan base-package="com.rl"/>
            
            <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
                <property name="username" value="root"></property>
                <property name="password" value="root"></property>
            </bean>
            
            <!-- 
                spring和mybatis的整合配置,一定要用SqlSessionFactoryBean类。
                数据源的注入
                读取核心配置文件sqlMapConfig.xml
             -->
            <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                <property name="dataSource" ref="dataSource"></property>
                <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
            </bean>
            
            <!-- 
                事务管理器
            -->        
            <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <property name="dataSource" ref="dataSource"></property>
            </bean>
            
            <!-- 
                配置通知
             -->
            <tx:advice id="txAdvice" transaction-manager="txManager">
                <tx:attributes>
                    <tx:method name="save*" propagation="REQUIRED"/>
                    <tx:method name="update*" propagation="REQUIRED"/>
                    <tx:method name="delete*" propagation="REQUIRED"/>
                    <tx:method name="select*" read-only="true"/>
                </tx:attributes>
            </tx:advice>
            
            <!-- 
                设置切点
             -->    
            <aop:config>
                <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.rl.service..*.*(..))"/>
            </aop:config>
            
    </beans>

    三. SpringMVC配置

     在config下创建springmvc.xml文件

    前面那些地址都和配spring一样。

    <?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:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">                            
            
            <!-- springmvc也有扫描器,扫到 controller层 -->
            <context:component-scan base-package="com.rl.controller"/>
            
            <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <property name="prefix" value="/WEB-INF/jsp/"></property>
                <property name="suffix" value=".jsp"></property>
            </bean>
    </beans>

    四. 配置文件写好后,开始写DAO代码文件

    在src下创建com.rl.model的package。在这个下面创建Person.java类。

    package com.rl.model;
    
    import java.io.Serializable;
    import java.util.Date;
    import java.util.List;
    
    public class Person implements Serializable{
        
        /**
         * 
         */
        private static final long serialVersionUID = -3327265996783250419L;
    
        private Integer personId;
        
        private String name;
        
        private Integer gender;
        
        private String personAddr;
        
        private Date birthday;
    
        public Integer getPersonId() {
            return personId;
        }
    
        public void setPersonId(Integer personId) {
            this.personId = personId;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getGender() {
            return gender;
        }
    
        public void setGender(Integer gender) {
            this.gender = gender;
        }
    
        public String getPersonAddr() {
            return personAddr;
        }
    
        public void setPersonAddr(String personAddr) {
            this.personAddr = personAddr;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
        @Override
        public String toString() {
            return "Person [personId=" + personId + ", name=" + name + ", gender="
                    + gender + ", personAddr=" + personAddr + ", birthday="
                    + birthday + "]";
        }
    }

    com.rl.model下面创建QueryCondition.java类。

    package com.rl.model;
    
    import java.util.Date;
    
    public class QueryCondition {
        
        private Integer gender;
        
        private Date birthday;
        
        private String name;
        
        private String personAddr;
        
        
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
    
    
        public String getPersonAddr() {
            return personAddr;
        }
    
        public void setPersonAddr(String personAddr) {
            this.personAddr = personAddr;
        }
    
        public Integer getGender() {
            return gender;
        }
    
        public void setGender(Integer gender) {
            this.gender = gender;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
    }

    在src下创建com.rl.dao的package。在这个下面创建PersonDao.java接口。

    package com.rl.dao;
    
    import java.util.List;
    
    import com.rl.model.Person;
    import com.rl.model.QueryCondition;
    
    public interface PersonDao {
        
        public void savePerson(Person p);
        public Person selectPersonById(Integer personId);
        public void update(Person p);
        public void delete(Integer personId);
        public List<Person> selectPersonByCondtion(QueryCondition qc);
    }

    接下来建立实现类的包:com.rl.dao.impl,在下面创建实现类PersonDaoImpl.java并实现PersonDao接口。在Superclass中要选择SqlSessionDaoSupport。引入SqlSessionDaoSupport的目的是把sessionFactory注入进来。

    package com.rl.dao.impl;
    
    import java.util.List;
    
    import org.mybatis.spring.support.SqlSessionDaoSupport;
    
    import com.rl.dao.PersonDao;
    import com.rl.model.Person;
    import com.rl.model.QueryCondition;
    
    public class PersonDaoImpl extends SqlSessionDaoSupport implements PersonDao {
    
        String ns = "com.rl.mapper.PersonMapper."; //找命名空间的
        
        @Override
        public void savePerson(Person p) {
            //提交、关闭session等代码就不用写了
            this.getSqlSession().insert(ns + "insert", p); //自动找到PersonMapper里的insert语句
        }
    
        @Override
        public Person selectPersonById(Integer personId) {
            return (Person) this.getSqlSession().selectOne(ns + "selectPersonById",personId); 
        }
    
        @Override
        public void update(Person p) {
            this.getSqlSession().update(ns + "dynamicUpdate",p);//动态修改
    
        }
    
        @Override
        public void delete(Integer personId) {
            this.getSqlSession().delete(ns + "delete",personId);
        }
    
        @Override
        public List<Person> selectPersonByCondtion(QueryCondition qc) {
            return this.getSqlSession().selectList(ns + "selectPersonByCondtion", qc);
        }
    
    }

    五. DAO完成后写Service

    创建com.rl.service包,下面创建PersonService.java接口。把PersonDao中的代码拿过来就行。

    package com.rl.service;
    
    import java.util.List;
    
    import com.rl.model.Person;
    import com.rl.model.QueryCondition;
    
    public interface PersonService {
        public void savePerson(Person p);
        public Person selectPersonById(Integer personId);
        public void update(Person p);
        public void delete(Integer personId);
        public List<Person> selectPersonByCondtion(QueryCondition qc);
    }

    创建com.rl.serviceimpl包,在下面创建实现类PersonServiceImpl.java并实现PersonService接口

    package com.rl.serviceimpl;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.rl.dao.PersonDao;
    import com.rl.model.Person;
    import com.rl.model.QueryCondition;
    import com.rl.service.PersonService;
    @Service
    public class PersonServiceImpl implements PersonService {
    
        @Autowired
        private PersonDao personDao;
        
        @Override
        public void savePerson(Person p) {
            personDao.savePerson(p);
        }
    
        @Override
        public Person selectPersonById(Integer personId) {
            return personDao.selectPersonById(personId);
        }
    
        @Override
        public void update(Person p) {
            personDao.update(p);
        }
    
        @Override
        public void delete(Integer personId) {
            personDao.delete(personId);
        }
    
        @Override
        public List<Person> selectPersonByCondtion(QueryCondition qc) {
            return personDao.selectPersonByCondtion(qc);
        }
    
    }

    六. Service写完了,写controller

    在src创建com.rl.controller的package。包中创建PersonController.java 类。

    要加@Controller注解

    要加@RequestMapping("/person")   模块的命名空间

    @Autowired可以省略了setter getter

    package com.rl.controller;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.propertyeditors.CustomDateEditor;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.ServletRequestDataBinder;
    import org.springframework.web.bind.annotation.InitBinder;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import com.rl.model.Person;
    import com.rl.model.QueryCondition;
    import com.rl.service.PersonService;
    
    @Controller
    @RequestMapping("/person")
    public class PersonController {
    
        @Autowired
        private PersonService personService;
        
        /**
         * 查询
         * @param qc
         * @param model
         * @return
         */
        @RequestMapping("/listPerson.do")
        public String listPerson(QueryCondition qc,Model model) {
            List<Person> pList = personService.selectPersonByCondtion(qc);
            model.addAttribute("pList",pList);
            model.addAttribute("qc",qc);
            return "list";
        }
        
        /**
         * 跳转到添加页面
         * @return
         */
        @RequestMapping("/tosave.do")
        public String toSave(){
            return "save";
        }
    
        /**
         * 添加
         * @return
         */
        @RequestMapping("/save.do")
        public String save(Person p){
            personService.savePerson(p);
            return "redirect:listPerson.do"; //跳转到listPerson.do
        }
        
        /**
         * 根据ID查询Person
         * @param personId
         * @param model
         * @return
         */
        @RequestMapping("/selectPerson.do")
        public String selectPerson(Integer personId,Model model){
            Person p = personService.selectPersonById(personId);
            model.addAttribute("person", p);
            return "update"; //跳转到update页面
        }
        
        /**
         * 修改
         * @param p
         * @return
         */
        @RequestMapping("/update.do")
        public String update(Person p){
            personService.update(p);
            return "redirect:listPerson.do"; //跳转到listPerson.do
        }
        
        /**
         * 根据ID删除
         * @param personId
         * @return
         */
        public String delete(Integer personId){
            personService.delete(personId);
            return "redirect:listPerson.do"; //跳转到listPerson.do
        }
        
        //更改时间格式
        @InitBinder
        public void initBinder(ServletRequestDataBinder binder) {
            binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
        }
        
    }

    七. Controller写完,配置web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:beans.xml</param-value>
      </context-param>
      
      <servlet>
          <servlet-name>springmvc</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:springmvc.xml</param-value>
          </init-param>
      </servlet>
      
      <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      
      <filter> 
            <filter-name>SpringCharacterEncodingFilter</filter-name> 
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
            <init-param> 
                <param-name>encoding</param-name> 
                <param-value>UTF-8</param-value> 
            </init-param> 
        </filter>
        <filter-mapping> 
            <filter-name>SpringCharacterEncodingFilter</filter-name> 
            <url-pattern>*.do</url-pattern> 
        </filter-mapping>
      
    </web-app>

    然后右键项目 - 属性 - Resource - Text file encoding - others- UTF-8 

    改完后java文件的中文会乱码,xml文件不会。把java文件先复制,再改成utf-8,再粘贴。所以要在项目最开始的时候改成utf-8。

    八. 写页面

    在WebRoot下的Web-INF下建立文件夹叫jsp,创建list.jsp文件

    去http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 下载jakarta-taglibs-standard-1.1.2.zip

    解压后lib下的两个jar导入到项目里的lib里

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    
    
        <form action="person/listPerson.do" method="post">
            <table>
                <tr>
                    <td><label>姓名:</label><input type="text" name="name"></td>
                    <td><label>性別:</label> <select name="gender">
                            <option value="">请选择</option>
                            <option value="1"></option>
                            <option value="0"></option>
                    </select></td>
                    <td><label>地址:</label><input type="text" name="personAddr"></td>
                    <td><label>生日:</label><input type="text" name="birthday"></td>
                    <td><input type="submit" value="查询"></td>
                </tr>
            </table>
        </form>
    
        <!-- 显示查找的内容 -->
        <table>
            <tr>
                <th>姓名</th>
                <th>性别</th>
                <th>地址</th>
                <th>生日</th>
                <th>操作</th>
            </tr>
            <c:forEach items="${pList }" var="person">
                <tr>
                    <td>${person.name }</td>
                    <td><c:if test="${person.gender == 1 }"></c:if> 
                        <c:if test="${person.gender == 0 }"></c:if>
                    </td>
                    <td>${person.personAddr }</td>
                    <td>
                        <f:formatDate pattern="yyyy-MM-dd" value="${person.birthday }" />
                    </td>
                    <td>
                        <!-- 修改(修改前必须先查询) --> 
                        <a href="person/selectPerson.do?personId=${person.personId }">修改</a> 
                        <a href="person/delete.do?personId=${person.personId }">删除</a>
                    </td>
                </tr>
            </c:forEach>
        </table>
    </body>
    </html>

     然后在Eclipse中的server右键Tomcat,把ssm加进去,然后运行Tomcat。

    在网页输入http://localhost:8080/ssm/person/listPerson.do

    当更能可以实现后,发现输入的内容一查询后就没了,所以需要回写。

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    
    
        <form action="person/listPerson.do" method="post">
            <table align="center" width="80%">
                <tr>
                    <td>
                        <label>姓名:</label>
                        <input type="text" name="name" value="${qc.name }"></td>
                    <td>
                        <label>性別:</label> 
                        <select name="gender">
                            <option value="">请选择</option>
                            <option value="1" <c:if test="${qc.gender == 1 }">selected</c:if>>男</option>
                            <option value="0" <c:if test="${qc.gender == 0 }">selected</c:if>>女</option>
                        </select>
                    </td>
                    <td>
                        <label>地址:</label>
                        <input type="text" name="personAddr" value="${qc.personAddr }"> 
                    </td>
                    <td><label>生日:</label><input type="text" name="birthday" value="<f:formatDate value="qc.birthday" pattern="yyyy-MM-dd" />" ></td>
                    <td><input type="submit" value="查询"></td>
                </tr>
            </table>
        </form>
        <table align="center" width="80%">
            <tr>
                <td>
                    <a href="person/toSave.do">添加</a>
                </td>
            </tr>
        </table>
    
        <!-- 显示查找的内容 -->
        <table>
            <tr>
                <th>姓名</th>
                <th>性别</th>
                <th>地址</th>
                <th>生日</th>
                <th>操作</th>
            </tr>
            <c:forEach items="${pList }" var="person">
                <tr>
                    <td>${person.name }</td>
                    <td><c:if test="${person.gender == 1 }"></c:if> 
                        <c:if test="${person.gender == 0 }"></c:if>
                    </td>
                    <td>${person.personAddr }</td>
                    <td>
                        <f:formatDate pattern="yyyy-MM-dd" value="${person.birthday }" />
                    </td>
                    <td>
                        <!-- 修改(修改前必须先查询) --> 
                        <a href="person/selectPerson.do?personId=${person.personId }">修改</a> 
                        <a href="person/delete.do?personId=${person.personId }">删除</a>
                    </td>
                </tr>
            </c:forEach>
        </table>
    </body>
    </html>

    继续做“添加”功能

    在list.jsp添加一个a标签作为添加按钮,然后复制list.jsp,粘贴成save.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    
    
        <form action="person/save.do" method="post">
            <table align="center" width="80%">
                <tr>
                    <td>
                        <label>姓名:</label>
                        <input type="text" name="name" ></td>
                    <td>
                        <label>性別:</label> 
                        <select name="gender">
                            <option value="">请选择</option>
                            <option value="1" ></option>
                            <option value="0" ></option>
                        </select>
                    </td>
                    <td>
                        <label>地址:</label>
                        <input type="text" name="personAddr" > 
                    </td>
                    <td><label>生日:</label><input type="text" name="birthday" ></td>
                    <td><input type="submit" value="添加"></td>
                </tr>
            </table>
        </form>
    
    </body>
    </html>

    接下来做修改,复制list.jsp,粘贴成update.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    
    
        <form action="person/update.do" method="post">
            <input type="hidden" name="personId" value="${person.personId }">
            <table align="center" width="80%">
                <tr>
                    <td>
                        <label>姓名:</label>
                        <input type="text" name="name" value="${person.name }"></td>
                    <td>
                        <label>性別:</label> 
                        <select name="gender">
                            <option value="">请选择</option>
                            <option value="1" <c:if test="${person.gender == 1 }">selected</c:if>>男</option>
                            <option value="0" <c:if test="${person.gender == 0 }">selected</c:if>>女</option>
                        </select>
                    </td>
                    <td>
                        <label>地址:</label>
                        <input type="text" name="personAddr" value="${person.personAddr }"> 
                    </td>
                    <td><label>生日:</label><input type="text" name="birthday" value="<f:formatDate value="person.birthday" pattern="yyyy-MM-dd" />" ></td>
                    <td><input type="submit" value="修改"></td>
                </tr>
            </table>
        </form>
    
    </body>
    </html>

    删除功能:

    在list.jsp中改

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    <script type="text/javascript">
        function deletePerson(personId){
            if(confirm("是否真的要删除?")){
                window.location.href = "person/delete.do?personId="+personId;
            }
        }
    </script>
    </head>
    <body>
    
    
        <form action="person/listPerson.do" method="post">
            <table align="center" width="80%">
                <tr>
                    <td>
                        <label>姓名:</label>
                        <input type="text" name="name" value="${qc.name }"></td>
                    <td>
                        <label>性別:</label> 
                        <select name="gender">
                            <option value="">请选择</option>
                            <option value="1" <c:if test="${qc.gender == 1 }">selected</c:if>>男</option>
                            <option value="0" <c:if test="${qc.gender == 0 }">selected</c:if>>女</option>
                        </select>
                    </td>
                    <td>
                        <label>地址:</label>
                        <input type="text" name="personAddr" value="${qc.personAddr }"> 
                    </td>
                    <td><label>生日:</label><input type="text" name="birthday" value="<f:formatDate value="qc.birthday" pattern="yyyy-MM-dd" />" ></td>
                    <td><input type="submit" value="查询"></td>
                </tr>
            </table>
        </form>
        <table align="center" width="80%">
            <tr>
                <td>
                    <a href="person/toSave.do">添加</a>
                </td>
            </tr>
        </table>
    
        <!-- 显示查找的内容 -->
        <table>
            <tr>
                <th>姓名</th>
                <th>性别</th>
                <th>地址</th>
                <th>生日</th>
                <th>操作</th>
            </tr>
            <c:forEach items="${pList }" var="person">
                <tr>
                    <td>${person.name }</td>
                    <td><c:if test="${person.gender == 1 }"></c:if> 
                        <c:if test="${person.gender == 0 }"></c:if>
                    </td>
                    <td>${person.personAddr }</td>
                    <td>
                        <f:formatDate pattern="yyyy-MM-dd" value="${person.birthday }" />
                    </td>
                    <td>
                        <!-- 修改(修改前必须先查询) --> 
                        <a href="person/selectPerson.do?personId=${person.personId }">修改</a> 
                        <a href="javascript:void(0);" onclick="deletePerson(${person.personId});">删除</a>
                    </td>
                </tr>
            </c:forEach>
        </table>
    </body>
    </html>
  • 相关阅读:
    English in 999
    面向对象程序设计
    HOOK相关
    很幽默的讲解六种Socket IO模型(转)(Delphi版本)[转]
    P2P之UDP穿透NAT原理并有UDP打洞的源码[转]
    分批导出数据库记录
    DELPHI Winsock完成端口[转]
    由数据库排序差异引起的错误一例总结
    适配器模式
    JQuery+Asp.net+Webservice组成的Autocomplete示例
  • 原文地址:https://www.cnblogs.com/lonske/p/9030177.html
Copyright © 2020-2023  润新知