网上有很多关于SSH架构的实例文章,但都显得复杂,我想,入门的朋友,还是希望从最简单的CRUD操作开始,一些复杂的数据库关系,逻辑关系,以后在项目中就能碰到,所以,本文定位于从零开始的一个SSH架构的例子,功能很简单,就是完成一个人员的CRUD操作,麻雀虽小,五脏俱全,希望能对从来没有接触过三者结合开发的朋友带来一点点帮助,这个例子,也算是我的入门实例,从此,开始Struts+Spring+Hibernate之旅 开发工具:MyEclipse5.1+Tomcat+Mysql
开发前准备:数据库安装,tomcat安装,下载jar包这些就不费口水了,直接切入正题吧 CREATE TABLE `people` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) default NULL, `location` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=COMPRESSED;
首先,建立工程和package,以下是我的工程目录 action DeletePeopleAction.java //删除人员action EditPeopleAction.java //编辑人员action第一步,读取需要修改的人员资料 EditPeopleActionDo.java //修改人员action ListPeopleAction.javaSave //显示人员列表action SavePeopleAction.java //新增人员action SearchPeopleAction.java //查找人员action dao IDAO.java //数据库操作接口 StudentDAOImpl.java //数据库操作实现 domain AbstractPeople.java //实体抽象类 People.hbm.xml //数据库映射 People.java //实体类 service IService.java //服务层接口 StudentManagerImpl.java //服务层实现 util Character.java //字符编码过滤器 PageSupport.java //分页 applicationContext_hibernate.xml //Spring配置文件(hibernate部分) applicationContext_service.xml //Spring配置文件(Service部分)
JSP:这几个jsp从名字就能看出功能,不说了 addStudent.jsp editStudent.jsp searchList.jsp searchStudent.jsp studentList.jsp
代码:
applicationContext_hibernate.xml
<? xml version="1.0" encoding="UTF-8" ?> <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" > < beans > <!-- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jdbc/StudentManager</value> </property> </bean> --> < bean id ="dataSource" class ="org.springframework.jdbc.datasource.DriverManagerDataSource" > < property name ="driverClassName" > < value > com.mysql.jdbc.Driver </ value > </ property > < property name ="url" > < value > jdbc:mysql://localhost:3306/studentmanager </ value > </ property > < property name ="username" > < value > root </ value > </ property > < property name ="password" > < value > 1234 </ value > </ property > </ bean > < bean id ="TransactionManager" class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" > < property name ="dataSource" > < ref bean ="dataSource" /> </ property > </ bean > < bean id ="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > < property name ="dataSource" > < ref local ="dataSource" /> </ property > < property name ="hibernateProperties" > < props > < prop key ="hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop > < prop key ="hibernate.show_sql" > true </ prop > < prop key ="hibernate.cache.use_query_cache" > true </ prop > < prop key ="hibernate.cache.provider_class" > org.hibernate.cache.HashtableCacheProvider </ prop > </ props > </ property > <!-- <property name="mappingDirectoryLocations"> <list> <value>classpath:/domain</value> </list> </property> --> < property name ="mappingResources" > < list > < value > domain/People.hbm.xml </ value > </ list > </ property > </ bean > < bean id ="StudentDAO" class ="dao.StudentDAOImpl" > < property name ="sessionFactory" > < ref local ="sessionFactory" /> </ property > </ bean > </ beans >
applicationContext_service.xml
<? xml version="1.0" encoding="UTF-8" ?> <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" > < beans > < bean id ="transactionManager" class ="org.springframework.orm.hibernate3.HibernateTransactionManager" > < property name ="sessionFactory" > < ref bean ="sessionFactory" /> </ property > </ bean > < bean id ="studentManager" class ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" > < property name ="transactionManager" > < ref bean ="transactionManager" ></ ref > </ property > < property name ="target" > < bean class ="service.StudentManagerImpl" > < property name ="studentDAO" > < ref bean ="StudentDAO" /> </ property > </ bean > </ property > < property name ="transactionAttributes" > < props > < prop key ="save*" > PROPAGATION_REQUIRED </ prop > < prop key ="list*" > PROPAGATION_REQUIRED,readOnly </ prop > < prop key ="delete*" > PROPAGATION_REQUIRED </ prop > < prop key ="get*" > PROPAGATION_REQUIRED,readOnly </ prop > < prop key ="edit*" > PROPAGATION_REQUIRED </ prop > < prop key ="search*" > PROPAGATION_REQUIRED </ prop > </ props > </ property > < property name ="proxyTargetClass" > < value > true </ value > </ property > </ bean > </ beans >
Web.xml
<? xml version="1.0" encoding="UTF-8" ?> < web-app xmlns ="http://java.sun.com/xml/ns/j2ee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" version ="2.4" xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > < context-param > < param-name > contextConfigLocation </ param-name > < param-value > /WEB-INF/classes/applicationContext_service.xml, /WEB-INF/classes/applicationContext_hibernate.xml </ param-value > </ context-param > < resource-ref > < description > SqlServer Datasource example </ description > < res-ref-name > jdbc/StudentManager </ res-ref-name > < res-type > javax.sql.DataSource </ res-type > < res-auth > Container </ res-auth > </ resource-ref > < filter > < filter-name > hibernateFilter </ filter-name > < filter-class > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </ filter-class > < init-param > < param-name > singleSession </ param-name > < param-value > true </ param-value > </ init-param > </ filter > < filter-mapping > < filter-name > hibernateFilter </ filter-name > < url-pattern > *.do </ url-pattern > </ filter-mapping > < listener > < listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class > </ listener > < servlet > < servlet-name > action </ servlet-name > < servlet-class > org.apache.struts.action.ActionServlet </ servlet-class > < init-param > < param-name > config </ param-name > < param-value > /WEB-INF/struts-config.xml </ param-value > </ init-param > < init-param > < param-name > debug </ param-name > < param-value > 3 </ param-value > </ init-param > < init-param > < param-name > detail </ param-name > < param-value > 3 </ param-value > </ init-param > < load-on-startup > 0 </ load-on-startup > </ servlet > < servlet-mapping > < servlet-name > action </ servlet-name > < url-pattern > *.do </ url-pattern > </ servlet-mapping > </ web-app >
struts-config.xml
<? xml version="1.0" encoding="UTF-8" ?> <! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd" > < struts-config > < data-sources /> < form-beans > < form-bean name ="people" type ="domain.People" ></ form-bean > </ form-beans > < global-exceptions /> < global-forwards /> < action-mappings > < action path ="/savePeople" name ="people" type ="action.SavePeopleAction" > < forward name ="success" path ="/listPeople.do" ></ forward > </ action > < action path ="/listPeople" name ="people" type ="action.ListPeopleAction" > < forward name ="success" path ="/studentList.jsp" ></ forward > </ action > < action path ="/deletePeople" name ="people" type ="action.DeletePeopleAction" > < forward name ="success" path ="/studentList.jsp" ></ forward > </ action > < action path ="/editPeople" name ="people" type ="action.EditPeopleAction" > < forward name ="success" path ="/editStudent.jsp" ></ forward > </ action > < action path ="/editPeopleDo" name ="people" type ="action.EditPeopleActionDo" > < forward name ="success" path ="/studentList.jsp" ></ forward > </ action > < action path ="/searchPeople" name ="people" type ="action.SearchPeopleAction" > < forward name ="success" path ="/searchList.jsp" ></ forward > </ action > </ action-mappings > < controller contentType ="text/html;charset=gb2312" processorClass="util.Character" /> < message-resources parameter ="" /> </ struts-config >
DeletePeopleAction.java
/**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import service.StudentManagerImpl; import domain.People; /** */ /** * MyEclipse Struts * Creation date: 01-17-2007 * * XDoclet definition: * @struts.action validate="true" */ public class DeletePeopleAction extends ActionSupport ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ... { Integer id = new Integer(request.getParameter( " id " )); StudentManagerImpl manager = (StudentManagerImpl)getWebApplicationContext().getBean( " studentManager " ); manager.deletePeople(id); List studentList = manager.listPeople( 0 , 5 , " from People " ); request.setAttribute( " studentList " , studentList); request.setAttribute( " currentPage " , 1 ); return mapping.findForward( " success " ); } }
EditPeopleAction.java
/**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import service.StudentManagerImpl; import domain.People; /** */ /** * MyEclipse Struts * Creation date: 01-17-2007 * * XDoclet definition: * @struts.action validate="true" */ public class EditPeopleAction extends ActionSupport ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ... { String id = request.getParameter( " id " ); StudentManagerImpl manager = (StudentManagerImpl)getWebApplicationContext().getBean( " studentManager " ); People people = (People)manager.getPeople( new Integer(id)); request.setAttribute( " id " , id); request.setAttribute( " name " , people.getName()); request.setAttribute( " location " , people.getLocation()); return mapping.findForward( " success " ); } }
EditPeopleActionDo.java
/**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import service.StudentManagerImpl; import domain.People; /** */ /** * MyEclipse Struts * Creation date: 01-17-2007 * * XDoclet definition: * @struts.action validate="true" */ public class EditPeopleActionDo extends ActionSupport ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ... { People people = (People)form; StudentManagerImpl manager = (StudentManagerImpl)getWebApplicationContext().getBean( " studentManager " ); People sPeople = (People)manager.getPeople( new Integer(people.getId())); sPeople.setName(people.getName()); sPeople.setLocation(people.getLocation()); manager.editPeople(sPeople); List studentList = manager.listPeople( 0 , 5 , " from People " ); request.setAttribute( " studentList " , studentList); request.setAttribute( " currentPage " , 1 ); return mapping.findForward( " success " ); } }
ListPeopleAction.java
/**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import service.StudentManagerImpl; import util.PageSupport; /** */ /** * MyEclipse Struts * Creation date: 01-17-2007 * * XDoclet definition: * @struts.action validate="true" */ public class ListPeopleAction extends ActionSupport ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ... { String page = request.getParameter( " page " ); int firstRow = 0 ; int lastRow = 0 ; StudentManagerImpl manager = (StudentManagerImpl)getWebApplicationContext().getBean( " studentManager " ); PageSupport sPage = new PageSupport(page); sPage.setPagetotal(manager.listPeople().size()); firstRow = sPage.calcFirstPage(); lastRow = sPage.calcLastPage(); List studentList = manager.listPeople(firstRow - 1 ,lastRow, " from People " ); request.setAttribute( " studentList " , studentList); request.setAttribute( " currentPage " , sPage.getThispage()); return mapping.findForward( " success " ); } }
SavePeopleAction.java
/**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import service.StudentManagerImpl; import domain.People; /** */ /** * MyEclipse Struts * Creation date: 01-17-2007 * * XDoclet definition: * @struts.action validate="true" */ public class SavePeopleAction extends ActionSupport ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ... { People people = (People)form; StudentManagerImpl manager = (StudentManagerImpl)getWebApplicationContext().getBean( " studentManager " ); manager.savePeople(people); return mapping.findForward( " success " ); } }
SearchPeopleAction.java
/**/ /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.ActionSupport; import service.StudentManagerImpl; import util.PageSupport; import domain.People; /** */ /** * MyEclipse Struts * Creation date: 01-17-2007 * * XDoclet definition: * @struts.action validate="true" */ public class SearchPeopleAction extends ActionSupport ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ... { People people = (People)form; String page = request.getParameter( " page " ); int firstRow = 0 ; int lastRow = 0 ; String name = people.getName(); String location = people.getLocation(); String hql = " from People where name= " + name + " and location= " + location; StudentManagerImpl manager = (StudentManagerImpl)getWebApplicationContext().getBean( " studentManager " ); PageSupport sPage = new PageSupport(page); sPage.setPagetotal(manager.searchPeople(hql).size()); firstRow = sPage.calcFirstPage(); lastRow = sPage.calcLastPage(); List studentList = manager.searchPeople(firstRow - 1 , lastRow, hql); request.setAttribute( " studentList " , studentList); request.setAttribute( " currentPage " , sPage.getThispage()); return mapping.findForward( " success " ); } }
IDAO.java
package dao; import java.util.List; import org.hibernate.criterion.DetachedCriteria; public interface IDAO ... { public void save(Object obj); public List list( final int firstRow, final int lastRow, final String hql); public List list(); public void delete(Object obj); public Object getPeople(Integer id); public void editPeople(Object obj); public List searchPeople( final int firstRow, final int lastRow, final String hql); public List searchPeople( final String sql); }
StudentDAOImpl.java
package dao; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.DetachedCriteria; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import domain.People; public class StudentDAOImpl extends HibernateDaoSupport implements IDAO ... { public List searchPeople( final int firstRow, final int lastRow, final String hql) ... { return getHibernateTemplate().executeFind( new HibernateCallback() ... { public Object doInHibernate(Session s) throws HibernateException, SQLException ... { Query query = s.createQuery(hql); query.setFirstResult(firstRow); query.setMaxResults(lastRow); List list = query.list(); return list; } } ); } public List searchPeople( final String hql) ... { return getHibernateTemplate().executeFind( new HibernateCallback() ... { public Object doInHibernate(Session s) throws HibernateException, SQLException ... { Query query = s.createQuery(hql); List list = query.list(); return list; } } ); } public void save(Object obj) ... { if (obj instanceof People) ... { People people = (People)obj; try ... { getHibernateTemplate().save(people); } catch (Exception e) ... { e.printStackTrace(); } } } public List list() ... { return getHibernateTemplate().find( " from People " ); } public List list( final int firstRow, final int lastRow, final String hql) ... { return getHibernateTemplate().executeFind( new HibernateCallback() ... { public Object doInHibernate(Session s) throws HibernateException, SQLException ... { Query query = s.createQuery(hql); query.setFirstResult(firstRow); query.setMaxResults(lastRow); List list = query.list(); return list; } } ); } public void editPeople(Object obj) ... { if (obj instanceof People) ... { People people = (People)obj; try ... { getHibernateTemplate().saveOrUpdate(people); } catch (Exception e) ... { e.printStackTrace(); } } } public Object getPeople(Integer id) ... { return getHibernateTemplate().get(People. class , id); } public void delete(Object obj) ... { if (obj instanceof People) ... { getHibernateTemplate().delete((People)obj); } } }
AbstractPeople.java
package domain; import org.apache.struts.action.ActionForm; public abstract class AbstractPeople extends ActionForm implements java.io.Serializable ... { // Fields private Integer id; private String name; private String location; // Constructors /** */ /** default constructor */ public AbstractPeople() ... { } /** */ /** full constructor */ public AbstractPeople(String name, String location) ... { this .name = name; this .location = location; } // Property accessors public Integer getId() ... { return this .id; } public void setId(Integer id) ... { this .id = id; } public String getName() ... { return this .name; } public void setName(String name) ... { this .name = name; } public String getLocation() ... { return this .location; } public void setLocation(String location) ... { this .location = location; } }
People.hbm.xml
<? xml version="1.0" encoding="utf-8" ?> <! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <!-- Mapping file autogenerated by MyEclipse - Hibernate Tools --> < hibernate-mapping package ="domain" > < class name ="People" table ="people" > < id name ="id" type ="java.lang.Integer" > < column name ="id" /> < generator class ="increment" ></ generator > </ id > < property name ="name" type ="java.lang.String" > < column name ="name" length ="100" /> </ property > < property name ="location" type ="java.lang.String" > < column name ="location" length ="100" /> </ property > </ class > </ hibernate-mapping >
People.java
package domain; /** */ /** * People generated by MyEclipse - Hibernate Tools */ public class People extends AbstractPeople implements java.io.Serializable ... { // Constructors /** */ /** default constructor */ public People() ... { } /** */ /** full constructor */ public People(String name, String location) ... { super (name, location); } }
IService.java
package service; import java.util.List; public interface IService ... { public void savePeople(Object obj); public List listPeople( int firstRow, int lastRow,String hql); public List listPeople(); public void deletePeople(Integer id); public Object getPeople(Integer id); public void editPeople(Object obj); public List searchPeople(String hql); public List searchPeople( int firstRow, int lastRow,String hql); }
StudentManagerImpl.java
package service; import java.util.ArrayList; import java.util.List; import dao.IDAO; import domain.People; public class StudentManagerImpl implements IService ... { private IDAO studentDAO; public void savePeople(Object obj) ... { if (obj instanceof People) ... { People people = (People)obj; studentDAO.save(people); } } public List searchPeople(String hql) ... { return studentDAO.searchPeople(hql); } public List searchPeople( int firstRow, int lastRow,String hql) ... { return studentDAO.searchPeople(firstRow, lastRow, hql); } public List listPeople( int firstRow, int lastRow,String hql) ... { List peopleList = new ArrayList(); peopleList = studentDAO.list(firstRow,lastRow,hql); return peopleList; } public List listPeople() ... { return studentDAO.list(); } public void editPeople(Object obj) ... { if (obj instanceof People) ... { People people = (People)obj; studentDAO.editPeople(people); } } public Object getPeople(Integer id) ... { return studentDAO.getPeople(id); } public void deletePeople(Integer id) ... { studentDAO.delete( this .getPeople(id)); } public IDAO getStudentDAO() ... { return studentDAO; } public void setStudentDAO(IDAO studentDAO) ... { this .studentDAO = studentDAO; } }
Character.java
package util; import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.RequestProcessor; public class Character extends RequestProcessor ... { protected boolean processRoles(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws IOException, ServletException ... { return super .processRoles(request, response, mapping); } protected void processContent(HttpServletRequest request, HttpServletResponse response) ... { try ... { request.setCharacterEncoding( " gb2312 " ); System.out.println(request.getCharacterEncoding()); } catch (UnsupportedEncodingException e) ... { e.printStackTrace(); } super .processContent(request, response); } }
PageSupport.java
package util; public class PageSupport ... { int thispage = 0 ; // 当前页数 int pagesize = 5 ; // 每页最大记录数 int firstpage = 0 ; // 记录开始的位置 int lastpage = 0 ; // 记录结束的位置 int pagetotal = 0 ; // 总记录数 int pagenums = 0 ; // 总页数 public PageSupport(String page) ... { if (page == null || page.equals( "" )) ... { thispage = 1 ; } else ... { thispage = Integer.parseInt(page); } } public int calcFirstPage() ... { pagenums = pagetotal / pagesize; if (pagetotal % pagesize != 0 ) ... { pagenums = pagenums + 1 ; } if (thispage > pagenums) thispage = pagenums; else if (thispage <= 0 ) ... { thispage = 1 ; } if (thispage <= 1 ) ... { firstpage = 1 ; } else ... { firstpage = (thispage - 1 ) * pagesize + 1 ; } return this .firstpage; } public int calcLastPage() ... { return this .pagesize; } public int getFirstpage() ... { return firstpage; } public void setFirstpage( int firstpage) ... { this .firstpage = firstpage; } public int getLastpage() ... { return lastpage; } public void setLastpage( int lastpage) ... { this .lastpage = lastpage; } public int getPagenums() ... { return pagenums; } public void setPagenums( int pagenums) ... { this .pagenums = pagenums; } public int getPagesize() ... { return pagesize; } public void setPagesize( int pagesize) ... { this .pagesize = pagesize; } public int getPagetotal() ... { return pagetotal; } public void setPagetotal( int pagetotal) ... { this .pagetotal = pagetotal; } public int getThispage() ... { return thispage; } public void setThispage( int thispage) ... { this .thispage = thispage; } }
addStudent.jsp
<% ... @ page language = " java " contentType = " text/html;charset=gb2312 " %> <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > < html > < head > </ head > < body > < form action ="/StudentManager/savePeople.do" method ="post" > 姓名:< input type ="text" name ="name" />< br > 籍贯:< input type ="text" name ="location" />< br > < input type ="submit" name ="submit" value ="提交" /> </ form > < a href ="searchStudent.jsp" > 查询 </ a > </ body > </ html >
editStudent.jsp
<% ... @ page language = " java " contentType = " text/html;charset=gb2312 " %> <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > < html > < head > </ head > < body > < form action ="/StudentManager/editPeopleDo.do" method ="post" > < input type ="hidden" name ="id" value ="<%=request.getAttribute(" id") % > "/> 姓名: < input type ="text" name ="name" value ="<%=request.getAttribute(" name") % > "/> < br > 籍贯:< input type ="text" name ="location" value ="<%=request.getAttribute(" location") % > "/> < br > < input type ="submit" name ="submit" value ="提交" /> </ form > </ body > </ html >
searchList.jsp
<% ... @ page language = " java " contentType = " text/html;charset=gb2312 " %> <% ... @ taglib uri = " /WEB-INF/struts-bean.tld " prefix = " bean " %> <% ... @ taglib uri = " /WEB-INF/struts-logic.tld " prefix = " logic " %> <% ... @ taglib uri = " /WEB-INF/struts-html.tld " prefix = " html " %> <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > < html > < head > <% ... int previousPage = (( Integer )request.getAttribute( " currentPage " )).intValue() - 1 ; int nextPage = (( Integer )request.getAttribute( " currentPage " )).intValue() + 1 ; %> </ head > < body > < table border =1 > < tr > < td > 姓名 </ td >< td > 籍贯 </ td >< td align ="center" > 操作 </ td > </ tr > < logic:present name ="studentList" scope ="request" > < logic:iterate id ="student" name ="studentList" > < tr > < td >< bean:write name ="student" property ="name" /></ td > < td >< bean:write name ="student" property ="location" /></ td > < td align ="center" >< a href ="/StudentManager/deletePeople.do?id=<bean:write name=" student" property ="id" /> ">删除 </ a > < a href ="/StudentManager/editPeople.do?id=<bean:write name=" student" property ="id" /> ">修改 </ a ></ td > </ tr > </ logic:iterate > </ logic:present > </ table > < a href ="/StudentManager/searchPeople.do?page=<%=previousPage%>" > 上一页 </ a > < a href ="/StudentManager/searchPeople.do?page=<%=nextPage%>" > 下一页 </ a > < br >< br > < a href ="addStudent.jsp" > 新增 </ a > < a href ="searchStudent.jsp" > 查询 </ a > </ body > </ html >
searchStudent.jsp
<% ... @ page language = " java " contentType = " text/html;charset=gb2312 " %> <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > < html > < head > </ head > < body > 输入查询条件: < form action ="/StudentManager/searchPeople.do" method ="post" > 姓名:< input type ="text" name ="name" />< br > 籍贯:< input type ="text" name ="location" />< br > < input type ="submit" name ="submit" value ="查询" /> </ form > </ body > < a href ="addStudent.jsp" > 新增 </ a > </ html >
studentList.jsp
<% ... @ page language = " java " contentType = " text/html;charset=gb2312 " %> <% ... @ taglib uri = " /WEB-INF/struts-bean.tld " prefix = " bean " %> <% ... @ taglib uri = " /WEB-INF/struts-logic.tld " prefix = " logic " %> <% ... @ taglib uri = " /WEB-INF/struts-html.tld " prefix = " html " %> <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > < html > < head > <% ... int previousPage = (( Integer )request.getAttribute( " currentPage " )).intValue() - 1 ; int nextPage = (( Integer )request.getAttribute( " currentPage " )).intValue() + 1 ; %> </ head > < body > < table border =1 > < tr > < td > 姓名 </ td >< td > 籍贯 </ td >< td align ="center" > 操作 </ td > </ tr > < logic:present name ="studentList" scope ="request" > < logic:iterate id ="student" name ="studentList" > < tr > < td >< bean:write name ="student" property ="name" /></ td > < td >< bean:write name ="student" property ="location" /></ td > < td align ="center" >< a href ="/StudentManager/deletePeople.do?id=<bean:write name=" student" property ="id" /> ">删除 </ a > < a href ="/StudentManager/editPeople.do?id=<bean:write name=" student" property ="id" /> ">修改 </ a ></ td > </ tr > </ logic:iterate > </ logic:present > </ table > < a href ="/StudentManager/listPeople.do?page=<%=previousPage%>" > 上一页 </ a > < a href ="/StudentManager/listPeople.do?page=<%=nextPage%>" > 下一页 </ a > < br >< br > < a href ="addStudent.jsp" > 新增 </ a > < a href ="searchStudent.jsp" > 查询 </ a > </ body > </ html >