`

Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板(3)

    博客分类:
  • Java
阅读更多

十、写测试类测试Spring和Hibernate是否结合成功,测试方法是否正确

 

 

UserServiceTest .java

package ssh.test;

import java.util.LinkedHashMap;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import ssh.model.User;
import ssh.service.UserService;
import ssh.utils.QueryResult;

public class UserServiceTest {
	
	//测试获取保存
	@Test
	public void save(){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		UserService service = (UserService)ctx.getBean("userService");
		User user=new User();
		user.setName("uuuuuuuuuuuuuu");
		service.save(user);
	}
	
	//测试获取分页
	@Test
	public void getScrollData(){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		UserService service = (UserService)ctx.getBean("userService");
		LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();	//定义排序
		orderby.put("id", "desc");
		
		QueryResult<User> qr =service.getScrollData(1, 5, "o.id>?", new Object[]{3}, orderby);
		for (User user : qr.getResultlist()) {
			System.out.println("id:" + user.getId() + " name:" + user.getName());
			
		}
	}

}

  

 

 

十一、封装分页页面

 

    1)封装分页工具条页面

      调用方法:

       <form action="index" method="post">
       <%@ include file="/share/fenye.jsp" %>
       </form>

 

 

 

fenye.jsp 

<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
<%@ include file="/share/taglib.jsp" %>

<html>
<SCRIPT type="text/javascript">
	function topage(page){
		var form=document.forms[0];
		var currentPage=document.getElementById(currentPage);
		form.currentPage.value=page;
		form.submit();
	}

</SCRIPT>
<body>

<input type="hidden" name="pageView.currentPage" id="currentPage" value="10"/>
当前页:第${pageView.currentPage} | 总记录数:${pageView.totalRecord} | 每页显示:${pageView.maxResult}|总页数:${pageView.totalPage}|

<c:if test="${pageView.currentPage==1}">首页|上一页</c:if>
<c:if test="${pageView.currentPage!=1}"><a href="javascript:topage(1)">首页</a>|<a href="javascript:topage('${pageView.currentPage-1}')">上一页</a></c:if>|第

<c:forEach begin="${pageView.startIndex}" end="${pageView.endIndex}" var="i">
<c:if test="${pageView.currentPage==i}"><b>${i }</b></c:if>
<c:if test="${pageView.currentPage!=i}"><a href="javascript:topage('${i}')">${i}</a></c:if>
</c:forEach>页|

<c:if test="${pageView.currentPage==pageView.totalPage}">下一页|末页</c:if>
<c:if test="${pageView.currentPage!=pageView.totalPage}"><a href="javascript:topage('${pageView.currentPage+1}')">下一页</a>|<a href="javascript:topage('${pageView.totalPage}')">末页</a></c:if>

</body>
</html>

  

   

  2)定义头不集合页面,每个JSP页面直接包含就行<%@ include file="/share/taglib.jsp" %>

 

taglib.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="/struts-tags" prefix="s" %>

  

 

 

十二、规划Struts 的Action和展示页面

  

  1)Action @Component("ua") /@Scope("prototype")/@Resource ,所以在Struts.xml里面写

   <action name="index" class="ssh.action.UserAction">

  2)Action 没有@Component("ua") /@Scope("prototype")/@Resource ,所以在Struts.xml里面写

   <action name="index" class="ua">

 

UserAction.java

 

package ssh.action;

import java.util.LinkedHashMap;
import javax.annotation.Resource;
import ssh.utils.QueryResult;
import ssh.utils.PageView;
import org.springframework.stereotype.Component;
import ssh.base.BaseAction;
import ssh.model.User;
import ssh.service.UserService;

//@Component("ua")
//@Scope("prototype")
public class UserAction extends BaseAction {
	private User user;
	private UserService userService;
	private PageView<User>pageView=new PageView<User>();	//这里必须要构造新对象,不然刚打开没有currentPage参数传递过来,如果不新建也行,第一次打开必须传递currentPage参数过来
	
	public PageView<User> getPageView() {
		return pageView;
	}

	public void setPageView(PageView<User> pageView) {
		this.pageView = pageView;
	}
	
	public UserService getUserService() {
		return userService;
	}

	//@Resource
	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	@Override
	public String execute() throws Exception {
		int maxresult=5;											//设置每次显示条数
		int firstindex=(pageView.getCurrentPage()-1)*maxresult;		//定义分页开始索引
		LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();	//定义排序
		orderby.put("id", "desc");
		
		QueryResult<User> qr=userService.getScrollData(firstindex,maxresult, "o.id>?", new Object[]{3}, orderby);
		pageView.setQueryResult(maxresult,qr);	//把查询结果和每页显示数传递给pageView
		request.put("pageView", pageView);
		return "index";
		
//		System.out.println("当前页"+pageView.getCurrentPage());
//		System.out.println("总页数"+pageView.getTotalPage());
//		System.out.println("总条数"+pageView.getTotalRecord());
//		System.out.println("startindex:"+pageView.getStartIndex());
//		System.out.println("endindex1:"+pageView.getEndIndex());
//		System.out.println("firstIndex:"+firstindex);
//		System.out.println("maxResult:"+pageView.getMaxResult());
//		System.out.println("currentPage:"+pageView.getCurrentPage());
	}
	
	public String save() throws Exception {
		userService.save(user);
		return "save";
	}
}

 

 

 

 

效果图

 

 源文件:

附件

  • SSH.rar (33.8 KB)
  • 下载次数: 105
分享到:
评论
2 楼 jiangping05 2012-06-10  
非常强大,谢谢LZ
1 楼 kimifdw 2012-02-07  
这个必须要支持一下,正在看这个,多谢LZ

相关推荐

Global site tag (gtag.js) - Google Analytics