加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > Java技术 > Java EE

Struts2分页实现源码

时间:2012-09-11 16:22:33  来源:网络  作者:

1.介绍

(1)Struts2相当于是servlet,和servelt不同的是当提交到struts.xml中之后,通过aciton标签就可以直接调用想用的方法,减少了代码量。

(2)在ActionSuport中set方法是注入,即是set方法是获取jsp页面中传过来的值,get方法是是向jsp页面发送值,值得一提的是有了get和set方法之后就取代了servlet中的

request.getParameter("");和重定向的操作。在这里要重点理解get和set方法的使用。

(3)在struts2分页中set和set方法更能突出它的用法。

2.下面来看实例把!

(1)首先访问这个页面时就应该查找出nowPage为1信息,所以在action中要判断nowPage是否为空。

在jsp页面的分页判断可以写为:

<div>

<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=1">首页</a>

<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage-1<=1?1:nowPage-1}">上一页</a>

<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage+1>=page.countPage?page.countPage:nowPage+1}">下一页</a>

<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${page.countPage}">末页</a>

</div>

当然可以在Page中封装好nowPage的判断,在这里主要介绍action.

当点击下一页的时候会连接到findAllPro.action这个struts.xml中的action,

struts.xml 文件为:

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="pro" namespace="/" extends="struts-default">

<action name="findAllPro" class="cn.csdn.hr.action.ProvinceAction" method="findAll">

<result>./list.jsp</result>

</action>

</package>

</struts>

从struts.xml中可以看出findAllPro连接到的是cn.csdn.hr.action.ProvinceAction下的findAll方法,我们去找ProvinceAction,为:

// 分页查询

public String findAll() {

if ("".equals(nowPage) || nowPage == null) {

this.nowPage = 1;

}

System.out.println(nowPage + "==============");

page = new PageWhere("Province", nowPage, "where 1<2");

// page= page.getDatas();

return SUCCESS;

}

因为要返回到jsp页面,所以要写一个get方法来把page传到jsp页面中:

// 得到page的值 ,并把得到的值放到page中,page可以获取所有的东西

private PageWhere page;

public PageWhere getPage() {

return page;

}

这样就把当前页的信息传到了jsp中,但是在分页的时候因为nowPage是jsp和struts2来回传的值,并且是一个变量,所以设置一个属性nowPage,生成get和set方法,来获取nowPage和把修改的nowPage传到jsp中,整个ProvinceAction页面为:

package cn.csdn.hr.action;

import cn.csdn.hr.HibernateUtil.PageWhere;

import cn.csdn.hr.domain.Province;

import cn.csdn.hr.service.ProvinceService;

import cn.csdn.hr.service.ProvinceServiceImpl;

import com.opensymphony.xwork2.ActionSupport;

public class ProvinceAction extends ActionSupport {

/**

* get方法是向jsp页面中传值 set方法向获取jsp页面的值

*/

private static final long serialVersionUID = 1L;

private ProvinceService provinceService = new ProvinceServiceImpl();

private Integer id;

private String name;

public ProvinceAction() {

super();

}

// 通过页面注入进来的。id的名称一定要和表单中 的一致

public void setId(Integer id) {

this.id = id;

}

public void setName(String name) {

this.name = name;

}

// 接收传过来的nowPage

private Integer nowPage;

public void setNowPage(Integer nowPage) {

this.nowPage = nowPage;

}

public Integer getNowPage() {

return nowPage;

}

// 得到page的值 ,并把得到的值放到page中,page可以获取所有的东西

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
Spring MVC 入门基础
Spring MVC 入门基础
2012年9月编程语言排行榜新鲜出炉了 PHP飙升第六
2012年9月编程语言排行
相关文章
    无相关信息
栏目更新
栏目热门