Spring+Hibernate+Struts框架:
http://blog.youkuaiyun.com/chinarefers/archive/2005/01/25/267077.aspx
这是我的DAO的核心代码
import
org.springframework.orm.hibernate.support.HibernateDaoSupport;
//
用Spring支持的Hibernate方法,使Hibernate对数据库的操作继续瘦身
public List
getOfficeBySearchCriteria(final String hsql,final int pageNo,final int
page_size) throws DataAccessException // hsql 是如:"select office1 from Office as
office1 order by office1.officename";pageNo 是第几页;page_size是每页记录数
{
String sql;
int total_count=0;
List offices=new ArrayList();
//offices= getHibernateTemplate().find("from Office office1 where
office1.officename like ?", "%"+officeName+"%");
offices= getHibernateTemplate().find(hsql);
//为了得到总记录数
total_count=offices.size();
crossPageInfo=
crossPageBean.getCrossPageInfo(total_count,pageNo,page_size);
sql=hsql+
" limit " + (pageNo-1)*page_size + "," +page_size;
offices= getHibernateTemplate().find(sql);
//为了得到页记录信息 System.out.println("The list offices size: "+offices.size());
return offices;
}
//其中crossPageBean.getCrossPageInfo只是得到页面的如:总页数、供多少页的信息等一般的翻页信息;
我在Action中是这样调用的:
public
ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws
Exception
{
CrossPageInfo crossPageInfo=new CrossPageInfo();
String
hsql="select office1 from Office office1 order by office1.officename";
String pageNo=request.getParameter("pageNo");
int pageNoi=1;
if(pageNo==null)
pageNo="1";
pageNoi=Integer.parseInt(pageNo);
int pageSize=5;
//List offices=getOfficeService().getAllOffice();
List
offices=getOfficeService().getOfficeBySearchCriteria(hsql,pageNoi,pageSize);
crossPageInfo=getOfficeService().getCrossPageInfo();
System.out.println("The CorssPgaeInfo :"+crossPageInfo.getPageNo());
System.out.println(crossPageInfo.getPageSize());
request.setAttribute("offices",offices);
request.setAttribute("pageInfo",crossPageInfo);
return
mapping.findForward("success");
//throw new
UnsupportedOperationException("Generated method 'execute(...)' not
implemented.");
}
//其中getOfficeService()只是提供接口服务的方法。
我的表现页面是这样的:
<%@
taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib
uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib
uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib
uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ page
import="com.uplus.util.CrossPageInfo"%>
<html>
<head>
<title>
mySearchCList
</title>
</head>
<body bgcolor="#ffffff">
<form name="form1"
action="officesearch.do" method="post">
<table >
<tr>
<td>OfficeName:<input name="officeName"
type="text"></td><td><input type="submit" name="sb"
value="Search"></td>
</tr>
</table>
</form>
<br><a
href="/jsp/office/officeadd.jsp">Add</a>
<table
bgcolor="#DBE9F1" align="center" class="InputFrameMain" style="MARGIN: 0px"
cellSpacing="1" cellPadding="0" BGALIGN="CENTER" BGVALIGn="middle" width="100%"
VALIGN="middle" >
<tr><td
align="center">OfficeName</td><td
align="center">OfficePhone</td></tr>
<logic:iterate
id="office" name="offices" >
<tr bgcolor="#ffffff">
<td
align="center"><a href="officesee.do?id=<bean:write name='office'
property='id'/>" target="_blank"><bean:write name="office"
property="officename"/></a></td>
<td
align="center"><bean:write name="office"
property="officephone"/></td>
<td align="center"><a
href="officeedit.do?id=<bean:write name='office' property='id'/>"
>Update </a>
<td align="center"><a
href="officedel.do?id=<bean:write name='office' property='id'/>"
onclick="return confirm('Would You Detele It? ')" >Delete </a>
</tr>
</logic:iterate>
</table>
<%CrossPageInfo
cpInfo=(CrossPageInfo)request.getAttribute("pageInfo");%>
<table
width="100%" align="center" class="InputFrameMain" style="MARGIN: 0px"
cellPadding="0" cellSpacing="0">
<tr ><form
action="officelist.do" method="post" onsubmit='return checkform2(this)'>
<td width=70%>Total <font
color="blue"><%=cpInfo.getTotalRow()%></font>&items
found,Total&<font
color="blue"><%=cpInfo.getTotalPage()%></font> Pages,Current No
<font color="blue"><%=cpInfo.getPageNo()%> </font>Page.
Go
to <input name="pageNo" type="text" size="5" class="input">Page
<input name="sb2" type="submit" class="button" value="Go">
</td></form>
<td width=30% align='left'>
<%if(cpInfo.getPageNo()>1){%>
&<a
href="officelist.do?pageNo=1">
<%}%>First</a>
<%if(cpInfo.getPageNo()>1){ %>
&<a
href="officelist.do?pageNo=<%=cpInfo.getPageNo()-1%>">
<%}%>Previous</a>
<%if(cpInfo.getPageNo()<cpInfo.getTotalPage()){ %>
&<a
href="officelist.do?pageNo=<%=cpInfo.getPageNo()+1%>">
<%}%>Next</a>
<%if(cpInfo.getTotalPage()>cpInfo.getPageNo()){%>
&<a
href="officelist.do?pageNo=<%=cpInfo.getTotalPage()%>">
<%}%>Last</a></td>
</tr>
</table>
</body>
</html>
大家可以看一下我的处理过程,其中在DAO里为了得到总计录数执行了一次次数据表查询HSQL;得到数据又执行了一次HSQL,我觉得这样好像有些不太好,大家觉得怎样?大家提出宝贵的意见吧!
相关推荐
【第六届起重机创意大赛国一作品——资料分享】
文章目录前言一、比赛内容分析二、确定方案与作品模型1.方案简图2.作品模型三、电控部分控制思路单片机选择与资源分配拓展板的设计接线与走线代码分享总结
Struts+Spring+Hibernate整合入门详解
Java 5.0 Struts 2.0.9Spring 2.0.6Hibernate 3.2.4 作者: Liu Liu 转载请注明出处基本概念和典型实用例子。一、基本概念 Struts:作为基于 MVC 模式的 Web 应用最经典框架,两个项目Struts 和web
Skynet 框架面试题
本文整理了游戏服务端开发面试中 Skynet 框架的高频考点,涵盖底层架构、消息派发、协程调度、网络 I/O、harbor 跨机通信、内存管理、socket 处理、阻塞操作、错误处理等核心内容。全面覆盖 Skynet 框架的原理、使用和实战问题,追求深入准确,拒绝八股文。
我做程序员这十年(三)—— spring、Struts、Hibernate
2019独角兽企业重金招聘Python工程师标准>>> ...
ArcGIS Pro中如何批量替换数据源
不知您是否遇到过下面情况:ArcGIS Pro的Map/Scene中所引用的数据源被移动或重命名了,导致Map/Scene中找不到之前的数据,出现红色叹号;已有一个Map模板文件,图层的样式符号都是设置好的,想批量设置成另外一个数据源,复用该模板文件中的样式符号。 如果您在ArcGIS Pro的使用过程中遇到了上面情况,那么可以参考本篇文章,本文以图层存储在同一GDB中为例介绍。 情况一:Map中已有图层的数据源被移动了 原始Map长这样: 当数据源位置改变之后,显示找不到数据源的红色叹号: 这时如果右
实战指南:如何优雅解决SpringBoot3与Mybatis-Plus的版本兼容性问题
本文深入解析SpringBoot3与Mybatis-Plus的版本兼容性问题,提供实战解决方案。通过Maven依赖排除策略、Gradle配置方案及自动配置覆盖策略,有效解决包冲突和初始化顺序问题,确保项目平稳升级。适用于开发者快速解决SpringBoot3与Mybatis-Plus的集成难题。
使用myeclipse集成struts,hibernate,spring的一个示例程序
转载:http://blog.hit.edu.cn/yyf/post/3.html 介绍一下怎样采用开源的 Spring,Hibernate以及Struts构建一个轻量级的架构。 一、整体架构介绍 在软件工程领域,为了降低模块耦合度,提高模块的可重用性,分层一直是广为采纳的一个方法。其实分层还可以使开发人员专注于某一层进行开发,使得软件开发的分工变细,提高生产效率(堪比福特
configure: error: no acceptable C compiler found in $PATH解决方案
本文主要介绍了configure: error: no acceptable C compiler found in $PATH解决方案,希望能对使用Linux的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案
Struts2+Spring+Hibernate学习总结——XML才是王道
<br /><br /> 2011 年 01 月 25 日 — 胡阳<br /><br /> 前面几篇分别总结了Struts、Hibernate、Spring的学习(见《Struts2学习总结以及细枝末节》、《Hibernate学习总结》、《Spring学习总结》),这次把这几个综合起来总结一下,找一下这些东西各自的职责。不过个人感觉现在的总结还是比较肤浅的,没有实践很难有确切的体会,但学习的路程还是要记录下来的,正所谓:好记性不如烂键盘嘛。<br />学习路线: 网上
手把手教你学simulink(31.17)--双向DCDC电源场景示例:基于simulink 的双向DCDC应用:车载充电器的pi控制
通过引入PI控制器,系统可以更精确地控制电压和电流,确保充电和放电过程的稳定性和高效性。
Spring AI Alibaba实战训练营-20 基于注解驱动的MCP快速开发入门指南
本文详细讲解如何使用SpringAiAlibaba快速开发基于注解驱动的MCP应用。文章详细介绍了MCP协议并且重点介绍了Spring AI通过注解驱动的开发方式简化MCP服务开发。具体包括服务端和客户端的注解使用、城市最新时间查询MCP项目结构概览(服务端和客户端模块)以及环境配置要求。
[转载]使用open source产品组装你的web应用架构(struts+spring+hibernate)
本文是我在SpringFramework中文论坛上看到的一篇文章,感觉不错,所以就收藏到Blog上原文地址:http://spring.jactiongroup.net/viewtopic.php?t=389 其实,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。 在构架的一开始就有很多事情要考虑。 从高处看,摆在开发者面前有很多问题:要考虑是怎样建立用户接口?在哪里处理业务逻辑
基于YOLOv11的军事目标识别系统设计与实现(坦克、舰船检测)
DOTA-v2.0(包含多种军事装备的航拍图像)图片数量:11,268类别:18类,包括坦克、舰船、战斗机等分辨率:800×800~4000×4000HRSC2016(高分辨率舰船检测数据集)图片数量:1,061类别:舰船及子类特点:包含多种视角和复杂背景图片数量:5,000+类别:22种军用飞机标注:精确边界框自建数据集建议收集来源:公开军事演习视频、卫星图像、模拟游戏截图数据增强:模拟不同天气、遮挡、低光照等战场环境。
Struts,Spring,Hibernate优缺点(转载)
1.strutsstruts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。优点:Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
Spring2.5+Struts2+Hibernate3整合之五
转载请注明:来自http://blog.youkuaiyun.com/M_ChangGong/ 作者:张燕广该篇主要编写Service层代码以及针对Service层功能的Junit测试代码在src下创建包com.zyg.ssh.service,在该包下创建接口StudentService,其代码如下:package com.zyg.ssh.service;import java.util.
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
ssh 分页struts2+hibernate3+spring 分页
转载自:http://blog.youkuaiyun.com/wushuang5566110/article/details/6926844 1、DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{ //省略了其他的代码 /** *//** * 分页查询 * @param hql 查询的条件 * @pa
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
MyEclipse中删除对Struts、Hibernate、Spring
已经导入一下框架,现在发现不想用了,要删除,发现麻烦,添加容易删除不易,下面这个帮你解决删除问题,本文为转载,我试过hibenate,挺好使,你们验证其他的框架 MyEclipse中删除对Struts、Hibernate、Spring的支持 最近碰到添加了ssh的支持,但又发现有些包,或配置文件不正确,想重新添加,但MyEcl
Hibernate+Spring+Struts2整合开发中的一个分页显示方案
Hibernate+Spring+Struts2整合开发中的一个分页显示方案 (2011-12-14 14:09:08) 转载▼ Hibernate+Spring+Struts2整合开发中的一个分页显示方案 分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发
一个完整的struts2+spring+hibernate+分页实例(转载)
一个完整的struts2+spring+hibernate+分页实例 前段时间,一直在为配置struts2+spring+hibernate这三大框架头痛。在网上找了很多例子,但都没有解决好我的三大框架的问题。后来把它搁了一段时间。偶尔有一天,我突然想起来了,然后硬着头皮逐字逐字地反复看那几个配置文件,突然我发现,原来犯了个很cheap的错误。敲错了一个字母。导致tomcat启动时老报Erro...
如何查看现有项目的struts和hibernate和spring版本 - [SSH]
<br />版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明http://howieshen.blogbus.com/logs/59439058.html<br /> <br />查看现有项目的struts和hibernate和spring版本<br />找到项目包含SSH的包,通常是在WEB-INF下的lib里面。<br />1.struts版本:<br /> 查看 struts.jar/META-INF/MANIFEST.MF<br /> Manifest-Version: 1.
Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
前言 确实好久没有写过了,一直以来把写博文当作自己学习的总结,当作做过的笔记,随时都可以拿出来看看。不过最近习惯了用OneNote和印象笔记,所以就很少在论坛写博文。但是偶尔看到几篇被转载了,也小小的虚荣了下。这种虚荣大神们已经习以为常,他们是不能理解的。 好吧,转入正题。 参加工作从事Java Web开发将近两年,也没有完整的搭建出一个SSH框架的项目,说出来确实有点不好意思,并且前一
转载:) 关于spring、hibernate、struts的一些错误问题 不断补充中(靠自己了)
1. 错误: java.lang.NullPointerException原因: 发现 dao 实例、 manage 实例等需要注入的东西没有被注入 解决:这个时候,你应该查看日志文件;默认是应用服务器的 log 文件,比如 Tomcat 就是 [Tomcat 安装目录 ]/logs ;你会发现提示你: 可能是: org.springframework.beans.fac
struts,spring和hibernate的出现解决了什么问题
struts自定义标签和页面导航: Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。T...
Hibernate、Spring和Struts2工作原理(理论)
Hibernate、Spring和Struts2工作原理 1. Hibernate 的工作原理 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭Sesstion
Struts、Spring、Hibernate的作用
简单的说: struts 控制用的 hibernate 操作数据库的 spring用解耦的 详细的说: STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 ActionServlet, 而...
7783



被折叠的 条评论
为什么被折叠?



