注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > Java 内容正文:Java开源架构Jdon应用系统案例开发

Java开源架构Jdon应用系统案例开发

发布时间:2006-03-14 10:34:46 来源:天极开发 网友评论 0 条
  批量查询实现

  代码:三步代码编写

  第一步、表现层编写一个查询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的批量查询功能已经全部完成。
 2/2   |‹ ‹‹ 1 2
相关文章
  • Javascript技术技巧大全
  • 如何成为一名Java初级程序员
  • 从C++到Java --理解面向对象是关键所在
  • JSP不是简化的Java
  • 14岁博客发现Gmail可以执行Javascript
【评论】【收藏本文】【打印】【关闭】
上一篇文章:Java规则引擎与其API应用详解
下一篇文章:Java理论和实践:用软引用阻止内存泄漏
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
Java控件设计入门
Java控件设计入门
推荐阅讯
  • 把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必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载