SSH2框架搭建流程及注意事项.doc_第1页
SSH2框架搭建流程及注意事项.doc_第2页
SSH2框架搭建流程及注意事项.doc_第3页
SSH2框架搭建流程及注意事项.doc_第4页
SSH2框架搭建流程及注意事项.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SSH2框架搭建流程及注意事项:*若无特殊声明都使用默认的选项1、 在myeclipse中创建一个新的工程 如果工程中要用到泛型“List”格式,一定要如图所选:因为只有Java EE5.0 支持Finish 完成2、 向工程加入hibernate能力,这里我们使用的是hibernate 3.2右键工程-myeclipse-add Hibernate C。把jar包路径选到/WebRoot/WEB-INF/lib 下Next3、图中的复选框不选,默认是选上的。因为hibernate.cfg.xml文件的内容由后面的spring配置文件进行管理,我们可以在创建之后将其删除Next4、图中的复选框不选,默认是选上的。我们根本不用hibernate.cfg.xml,所以这里根本不需要进行数据库配置,当然默认也无所谓Next5、此处为创建sessionfactory。如果不用就不选,如果是自己写就要选上Finish 完成#添加spring能力1、 右键工程-myeclipse-Add Spring Capabilities。2、需要选上五个包Spring 2.0 AOP Libraries Spring 2.0 Core Libraries Spring 2.0 Persistence Core Libraries Spring 2.0 Persistence JDBC Libraries Spring 2.0 Web Libraries 也不要忘记将jar包加入到/WebRoot/WEB-INF/lib。 next3、4Finish 完成5 加入struts2支持,由于MyEclipse并没有加入Struts2的支持,所以我们需要手动导入相关jar包。 这里我们使用的是struts 2.0.11版本 需要的相关jar包如下: freemarker-2.3.8.jar ognl-2.6.11.jar struts2-core-2.0.11.jar xwork-2.0.4.jar struts2-spring-plugin-2.0.11.jarcommons-logging-1.0.4.jar6、在src下加入struts的配置文件struts.xml /save-success.jsp !- action跳action 或者直接跳jspuserList /user/userList.jspuserList /user/userEdit.jspuserList - 7、接下来我们配置web.xml - struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* - contextConfigLocation /WEB-INF/applicationContext.xml 60 org.springframework.web.context.ContextLoaderListener encodingorg.springframework.web.filter.CharacterEncodingFilter encoding UTF-8encoding/* save.jsp 到目前为止我们的整合工作已经完成。我们可以将该工程打包,以备下次直接使用。 这里由一个问题就是如果采用myeclipse加载hibernate和spring的lib包形式发布项目的时候会出现异常,我们可以手动去掉一个asm-2.2.3jar即可。*把sqlserver2005的3个jar包也拷到tomcat的lib文件夹下Spring的配置文件 - - - - !- - - - - - - true utf-8 org.hibernate.dialect.SQLServerDialect true true - - - test/s2sh/bean/Person.hbm.xml - - - - - Jsp页面中输出List的结果集IDUsernamePasswordEditDelete/users 是在action(vo)类中定义的 /value值是表的字段名Edit/如果需要利用id查询利用此种方式传递参数Delete修改方法的jsp页面添加页面也可以用,但是要改ID$id UsernamePasswordStruts的分页代码1、在Dao接口及实现类里写如下两个方法接口里:/* */* * 分页查询 * param hql 查询的条件 * param offset 开始记录 * param length 一次查询几条记录 * return */ public List queryForPage(final String hql,final int offset,final int length); /* */* * 查询所有记录数 * param hql 查询的条件 * return 总记录数 */public int getAllRowCount(String hql);接口实现类里;/* */* * 分页查询 * param hql 查询的条件 * param offset 开始记录 * param length 一次查询几条记录 * return */ public List queryForPage(final String hql,final int offset,final int length) List list = getHibernateTemplate().executeFind(new HibernateCallback() public Object doInHibernate(Session session) throws HibernateException,SQLException Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; ); return list; /* */* * 查询所有记录数 * return 总记录数 */ public int getAllRowCount(String hql) return getHibernateTemplate().find(hql).size(); 2、写一个PageBean封装分页信息的类。public class PageBean private List list; /要返回的某一页的记录列表 private int allRow; /总记录数 private int totalPage; /总页数 private int currentPage; /当前页 private int pageSize; /每页记录数 private boolean isFirstPage; /是否为第一页 private boolean isLastPage; /是否为最后一页 private boolean hasPreviousPage; /是否有前一页 private boolean hasNextPage; /是否有下一页 public List getList() return list; public void setList(List list) this.list = list; public int getAllRow() return allRow; public void setAllRow(int allRow) this.allRow = allRow; public int getTotalPage() return totalPage; public void setTotalPage(int totalPage) this.totalPage = totalPage; public int getCurrentPage() return currentPage; public void setCurrentPage(int currentPage) this.currentPage = currentPage; public int getPageSize() return pageSize; public void setPageSize(int pageSize) this.pageSize = pageSize; /* */* * 初始化分页信息 */ public void init() this.isFirstPage = isFirstPage(); this.isLastPage = isLastPage(); this.hasPreviousPage = isHasPreviousPage(); this.hasNextPage = isHasNextPage(); /* */* * 以下判断页的信息,只需getter方法(is方法)即可 * return */ public boolean isFirstPage() return currentPage = 1; / 如是当前页是第1页 public boolean isLastPage() return currentPage = totalPage; /如果当前页是最后一页 public boolean isHasPreviousPage() return currentPage != 1; /只要当前页不是第1页 public boolean isHasNextPage() return currentPage != totalPage; /只要当前页不是最后1页 /* */* * 计算总页数,静态方法,供外部直接通过类名调用 * param pageSize 每页记录数 * param allRow 总记录数 * return 总页数 */ public static int countTotalPage(final int pageSize,final int allRow) int totalPage = allRow % pageSize = 0 ? allRow/pageSize : allRow/pageSize+1; return totalPage; /* */* * 计算当前页开始记录 * param pageSize 每页记录数 * param currentPage 当前第几页 * return 当前页开始记录号 */ public static int countOffset(final int pageSize,final int currentPage) final int offset = pageSize*(currentPage-1); return offset; /* */* * 计算当前页,若为0或者请求的URL中没有?page=,则用1代替 * param page 传入的参数(可能为空,即0,则返回1) * return 当前页 */ public static int countCurrentPage(int page) final int curPage = (page=0?1:page); return curPage; 在service接口及类中写一个方法接口:/* */* * 分页查询 * param currentPage 当前第几页 * param pageSize 每页大小 * return 封闭了分页信息(包括记录集list)的Bean */public PageBean queryForPage(int pageSize,int currentPage);实现类: 在action类中调用改方法private int page; /第几页 private PageBean pageBean; /包含分布信息的bean public int getPage() return page; public void setPage(int page) /若URL中无此参数,会默认为第1页 this.page = page; public PageBean getPageBean() return pageBean;public void setPageBean(PageBean pageBean) this.pageBean = pageBean;public String userList() th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论