﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-琪钰人生</title><link>http://www.blogjava.net/lzbaoyu/</link><description>没有最好,只有更好.</description><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 01:03:59 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 01:03:59 GMT</pubDate><ttl>60</ttl><item><title>Java开源架构Jdon应用系统案例开发 </title><link>http://www.blogjava.net/lzbaoyu/archive/2006/03/15/35385.html</link><dc:creator>宝钰</dc:creator><author>宝钰</author><pubDate>Wed, 15 Mar 2006 04:35:00 GMT</pubDate><guid>http://www.blogjava.net/lzbaoyu/archive/2006/03/15/35385.html</guid><wfw:comment>http://www.blogjava.net/lzbaoyu/comments/35385.html</wfw:comment><comments>http://www.blogjava.net/lzbaoyu/archive/2006/03/15/35385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lzbaoyu/comments/commentRss/35385.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lzbaoyu/services/trackbacks/35385.html</trackback:ping><description><![CDATA[批量查询实现<br /> 　　代码：三步代码编写<br /> 第一步、表现层编写一个查询Action，继承Jdon框架的com.jdon.strutsutil.ModelListAction，该类名称为sample.web. MessageListAction，完成getPageIterator和findModelByKey两个方法。 　　其中getPageIterator方法内容是业务层MessageService的调用： MessageService messageService= (MessageService) WebAppUtil.getService("messageService",request); return messageService.getAllMessages(start, count); 　　所以MessageService接口中必须有getAllMessages这个方法，主要功能是返回PageIterator对象 findModelByKey方法内容也是业务层MessageService的调用： MessageService messageService= (MessageService) WebAppUtil.getService("messageService", request); return messageService.getMessage((String)key); 　　MessageService接口中必须有getMessage方法。<br />第二步、业务层实现MessageService接口方法getAllMessages内容，一般是直接调用持久层MessageDao方法。<br />第三步、持久层实现返回PageIterator对象： public PageIterator getMessages(int start, int count) throws Exception { 　String GET_ALL_ITEMS_ALLCOUNT = "select count(1) from testmessage "; 　String GET_ALL_ITEMS = "select messageId from testmessage "; 　return pageIteratorSolverOfMessage. getPageIterator (GET_ALL_ITEMS_ALLCOUNT, GET_ALL_ITEMS, "",start, count); } 　　如果有参数，可以如下查询： public PageIterator getMessages(Long categoryId, int start, int count) { 　String GET_ALL_ITEMS_ALLCOUNT = "select count(1) from message where categoryId = ? "; 　String GET_ALL_ITEMS = "select messageId from message where categoryId = ? "; 　Collection params = new ArrayList(1); 　params.add(categoryId);//参数放在Collection中　return pageIteratorSolver.getPageIterator(GET_ALL_ITEMS_ALLCOUNT, GET_ALL_ITEMS, params, start, count); }<br />配置之一：<br />Jdon框架配置文件<br />    　本步骤主要是需要告诉jdonframework.xml我们的MessageService实现子类是什么，以及调用的MessageDao等组件，jdonframework.xml如下：<br /> ＜services＞　＜pojoService name="messageService" class="sample.service.MessageServiceImp"/＞<br />＜component name="messageDAO" class="sample.dao.MessageDAO"/＞<br /> ＜component name="constants" class="sample.Constants"＞<br />＜constructor value="java:/TestDS"/＞＜/component＞ ＜/services＞<br /> 因为MessageServiceImp类中调用了MessageDAO，MessageDAO中又涉及JNDI名称，所以它们之间依赖关系靠Jdon框架的IOC容器实现。MessageServiceImp必须有构造器如下：<br /> public class MessageServiceImp implements MessageService{ 　private MessageDAO messageDAO; 　public MessageServiceImp(MessageDAO messageDAO){ 　　this.messageDAO = messageDAO; 　} }<br /> 配置之二：界面流程配置 <br />　　这一步主要是struts-config.xml配置，和通常struts的ActionForm和Action配置类似： ＜form-beans＞　　…… ＜form-bean name="listForm" type="com.jdon.strutsutil.ModelListForm" /＞＜/form-beans＞<br />其中com.jdon.strutsutil.ModelListForm是框架批量查询特别使用的类。<br /> ＜action name="listForm" path="/messageListAction" type="sample.web.MessageListAction" scope="request"＞＜forward name="success" path="/messageList.jsp" /＞＜/action＞<br />其中sample.web.MessageListAction是我们前面代码编写部分编写的代码。这样，客户端浏览器通过http://localhost:8080/ messageListAction.do就可以实现所有Message批量分页查询显示。<br />注意，messageList.jsp中编码和通常Struts的Jsp编码是一样的，需要使用logic:iterator从ActionForm为listForm的list字段中获取单个的Message对象，然后显示这些单个Message对象,，<br />如下： <br />＜logic:iterate indexId="i" id="message" name="listForm" property="list" ＞<br /> ＜bean:write name="message" property="name" /＞ ......... ＜/logic:iterate <br />在messageList.jsp中加入下面标签库可以自动显示多页，缺省一个页面显示30个条目。 ＜MultiPages:pager actionFormName="listForm" page="/messageListAction.do"＞ <br />＜MultiPages:prev name="[Prev ]" /＞＜MultiPages:index displayCount="1" /＞＜MultiPages:next name="[Next ]" /＞＜/MultiPages:pager＞<br />模型Message的批量查询功能已经全部完成。<img src ="http://www.blogjava.net/lzbaoyu/aggbug/35385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lzbaoyu/" target="_blank">宝钰</a> 2006-03-15 12:35 <a href="http://www.blogjava.net/lzbaoyu/archive/2006/03/15/35385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>