论坛首页 Java企业应用论坛

也SHOW一下一个分页的东东(Struts+Hibernate)

浏览 5463 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-10-06  
最近做个“精简版”的CRM(Struts1.X+Hiberbate3.2),自己做了一次所谓的“架构师”,要写几个基本的工具类供组员使用,一直在愁分页这个问题。鼓捣了一下,自己随便写了这个分页的+DAO类,基本上还算通用。
不足之处,请大家指正,谢谢。。。^_^
==============
代码片段:
=============
public class PageUtil {
	/**
	 * 获取分页样式
	 * 
	 * @param request
	 *            本次请求的URL
	 * @param pageInfo
	 *            分页类的对象
	 * @return 返回分页的样式
	 */
	public static String pageStyle(HttpServletRequest request, PageInfo pageInfo) {
		// 获取请求的路径
		StringBuffer requestURL = request.getRequestURL();
		requestURL.append("?");
		// 获取请求路径后的参数
		String queryString = request.getQueryString();
		// System.out.println("queryString:" + queryString);
		String pageStyle = "";
		if (queryString == null
				&& queryString.toUpperCase().indexOf("PAGEINDEX") == -1) {
			pageStyle = getPageStyle(requestURL, pageInfo);
			// System.out.println("无参数....");
		} else {
			// System.out.println("有参数.....");
			String[] queryParam = queryString.split("&");
			// System.out.println("分解后数组长度:" + queryParam.length);
			for (int i = 0; i < queryParam.length; i++) {
				String[] param = queryParam[i].split("=");
				String paramName = param[0];
				String paramValue = "";
				try {
					paramValue = param[1];
				} catch (Exception e) {
					paramValue = "";
				}
				if (paramValue == null) {
					paramValue = "";
				}
				if (!paramName.toUpperCase().equals("PAGEINDEX")) {
					requestURL.append(paramName + "=" + paramValue + "&");
				}
			}
			pageStyle = getPageStyle(requestURL, pageInfo);
		}
		return pageStyle;
	}
   发表时间:2009-10-06  
个人认为这个PageUtil把request传入然后自己去解析设计得不太好
0 请登录后投票
   发表时间:2009-10-06  
coolzyt 写道
个人认为这个PageUtil把request传入然后自己去解析设计得不太好

优化上没做什么设计。也没用自定义标签。
主要是为了页面生成分页样式的时候分页的链接问题,才采用了这样一种方式。
0 请登录后投票
   发表时间:2009-10-08  
个人认为你可以写一个父的Action然后所有的action都继承你自己写的父Action,然后把解析request的动作放在父action中的一个方法中,再将解析好的内容包装成一个对象,或者是一个字符串什么的传到你的PageUtil类中,这样,应该可以与web解耦合,你觉得呢
0 请登录后投票
   发表时间:2009-10-08  
lz不逗你  你这个设计可以不考虑了 不知道你的组里怎么会用你这个 没技术组长的吗? 你还是学校的项目啊
0 请登录后投票
   发表时间:2009-10-08  
楼主的目标是一个工具类,
但是这个工具类需要做的事情太多了:
pageStyle(HttpServletRequest request, PageInfo pageInfo)
请求解析的事情就放在前面做吧,呵呵。
……

尽管从楼主代码来看,的确火候缺了那么一点点,呵呵,但是代码习惯很好,加油!

楼上的同学显得有点过了,即便是批评,你也要让被你批评的人有所收获,
就像扯着嗓子吼一声这一类性质的评判,就敛一下吧。
0 请登录后投票
   发表时间:2009-10-09  
fecasmoy123 写道
楼主的目标是一个工具类,
但是这个工具类需要做的事情太多了:
pageStyle(HttpServletRequest request, PageInfo pageInfo)
请求解析的事情就放在前面做吧,呵呵。
……

尽管从楼主代码来看,的确火候缺了那么一点点,呵呵,但是代码习惯很好,加油!

楼上的同学显得有点过了,即便是批评,你也要让被你批评的人有所收获,
就像扯着嗓子吼一声这一类性质的评判,就敛一下吧。

也是 也是 昨天太困了 不好意思哦 各位 不过从我的角度讲 真的 我要是看到这样的代码绝对不可以 我组成员绝对不能出现这样的代码~~ 不过lz在努力吧 我一向说话直不好意思哦
0 请登录后投票
   发表时间:2009-10-09   最后修改:2009-10-09
我觉得楼主能分享出来自己的东西,就很好。觉得代码不好的高手们,可以给指出什么地方不好(最好给说说改进建议),光说不好,对于楼主还是没有帮助的
0 请登录后投票
   发表时间:2009-10-09  
兄弟分页不是这么搞的,简单的列一个问题你的这个东西就通不过(而且你的页面分页请求参数组合在页面手动组合过于麻烦),比如页面上有两个分页表格控件,分页应该是通过web request映射到pageModel,在action中将模型传到后台
@Controller
@Scope("request")
@Namespace("/policy")
public class BankBusinessAction extends BasicActionSupport{

//翻页模型
private PaginationModel pageModel = new PaginationModel();
  //geter seter

  /**
* 查询银行业务
* @return
* @throws BaseException
*/
public String search()throws BaseException{
pageModel = bankBusinessService.searchBankBusiness(bankBusinessVO, pageModel);
return this.MAIN;
}
}

在dao层提供后台统一处理方式做分页处理,能够自己写东西分享还是不错的,是个好的开端,好好努力!
0 请登录后投票
   发表时间:2010-01-26  
这个东西怎么说呢,只有自己动手做了才会有所收获,虽然它还不够完美!
继续努力
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics