
Java开源架构Jdon应用系统案例开发
发布时间:2006-03-14 10:34:46 来源:天极开发 网友评论 0 条
批量查询实现
代码:三步代码编写
第一步、表现层编写一个查询Action,继承Jdon框架的com.jdon.strutsutil.ModelListAction,该类名称为sample.web. MessageListAction,完成getPageIterator和findModelByKey两个方法。
其中getPageIterator方法内容是业务层MessageService的调用:
所以MessageService接口中必须有getAllMessages这个方法,主要功能是返回PageIterator对象
findModelByKey方法内容也是业务层MessageService的调用:
MessageService接口中必须有getMessage方法。
第二步、业务层实现MessageService接口方法getAllMessages内容,一般是直接调用持久层MessageDao方法。
第三步、持久层实现返回PageIterator对象:
如果有参数,可以如下查询:
配置之一:Jdon框架配置文件
本步骤主要是需要告诉jdonframework.xml我们的MessageService实现子类是什么,以及调用的MessageDao等组件,jdonframework.xml如下:
因为MessageServiceImp类中调用了MessageDAO,MessageDAO中又涉及JNDI名称,所以它们之间依赖关系靠Jdon框架的IOC容器实现。MessageServiceImp必须有构造器如下:
配置之二:界面流程配置
这一步主要是struts-config.xml配置,和通常struts的ActionForm和Action配置类似:
其中com.jdon.strutsutil.ModelListForm是框架批量查询特别使用的类。
其中sample.web.MessageListAction是我们前面代码编写部分编写的代码。这样,客户端浏览器通过http://localhost:8080/ messageListAction.do就可以实现所有Message批量分页查询显示。
注意,messageList.jsp中编码和通常Struts的Jsp编码是一样的,需要使用logic:iterator从ActionForm为listForm的list字段中获取单个的Message对象,然后显示这些单个Message对象,,如下:
在messageList.jsp中加入下面标签库可以自动显示多页,缺省一个页面显示30个条目。
模型Message的批量查询功能已经全部完成。
代码:三步代码编写
第一步、表现层编写一个查询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方法。
第二步、业务层实现MessageService接口方法getAllMessages内容,一般是直接调用持久层MessageDao方法。
第三步、持久层实现返回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); } |
配置之一:Jdon框架配置文件
本步骤主要是需要告诉jdonframework.xml我们的MessageService实现子类是什么,以及调用的MessageDao等组件,jdonframework.xml如下:
| <services> <pojoService name="messageService" class="sample.service.MessageServiceImp"/> <component name="messageDAO" class="sample.dao.MessageDAO"/> <component name="constants" class="sample.Constants"> <constructor value="java:/TestDS"/> </component> </services> |
因为MessageServiceImp类中调用了MessageDAO,MessageDAO中又涉及JNDI名称,所以它们之间依赖关系靠Jdon框架的IOC容器实现。MessageServiceImp必须有构造器如下:
| public class MessageServiceImp implements MessageService{ private MessageDAO messageDAO; public MessageServiceImp(MessageDAO messageDAO){ this.messageDAO = messageDAO; } } |
配置之二:界面流程配置
这一步主要是struts-config.xml配置,和通常struts的ActionForm和Action配置类似:
| <form-beans> …… <form-bean name="listForm" type="com.jdon.strutsutil.ModelListForm" /> </form-beans> |
其中com.jdon.strutsutil.ModelListForm是框架批量查询特别使用的类。
| <action name="listForm" path="/messageListAction" type="sample.web.MessageListAction" scope="request"> <forward name="success" path="/messageList.jsp" /> </action> |
其中sample.web.MessageListAction是我们前面代码编写部分编写的代码。这样,客户端浏览器通过http://localhost:8080/ messageListAction.do就可以实现所有Message批量分页查询显示。
注意,messageList.jsp中编码和通常Struts的Jsp编码是一样的,需要使用logic:iterator从ActionForm为listForm的list字段中获取单个的Message对象,然后显示这些单个Message对象,,如下:
| <logic:iterate indexId="i" id="message" name="listForm" property="list" > <bean:write name="message" property="name" /> ......... </logic:iterate |
在messageList.jsp中加入下面标签库可以自动显示多页,缺省一个页面显示30个条目。
| <MultiPages:pager actionFormName="listForm" page="/messageListAction.do"> <MultiPages:prev name="[Prev ]" /> <MultiPages:index displayCount="1" /> <MultiPages:next name="[Next ]" /> </MultiPages:pager> |
模型Message的批量查询功能已经全部完成。
推荐阅讯
- 把WebLogic EJB程序迁移到JBoss上
- Java调用Oracle的过程和函数
- Java设计模式之外观模式(1)
- 实例分析Java SE 6.0新增功能
- Java入门需掌握的30个基本概念
- 现代Java Web开发架构分析
- 审查Java 代码的十一种常见错误
- 通过实例论证J2ME的事件传输机制
- Java连接SQL Server 2000
- Struts VS Spring 两种MVC框架比较
阅读排行
- 1.Java连接SQL Server 2000
- 2.Java文件操作详解
- 3.Java控件设计入门
- 4.Java操作Excel电子表格
- 5.Java: JNI完全手册
- 6.Java命令行简介
- 7.开发J2EE应用应遵循的几点原则
- 8.Servlet与Javabean配置
- 9.Java规则引擎与其API应用详解
- 10.CLASSPATH详解
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
