<%@ page contentType="text/html; charset=gb2312"%> 由tile想到的在jsp使用hibernate的方法
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
由tile想到的在jsp使用hibernate的方法
     发布者: 发布时间:2006-05-07
至从开始学习jsp的时候就一直受到MVC2模式的影响。可能是以前写代码的机会多一点吧。很少做页面的东西。所以一直感觉以推出jsp页面的方式,一直是开发的首选。因为这样才可以实现功能、代码与页面的分离。而且由于个人刚工作,还处于理论>>实践阶段。所以在项目中特别的首荐规范化的设计。什么都要MVC一下。在这段时间学习tile的时候。感觉这已经不完全是简单的在action的准备数据,再推出一个jsp的开发方式了。似乎tile的control功能就已经破坏了推模式。
使用control功能就可在jsp页面中拉出数据来了。比如一个userlist操作。如果没有使用tile的话,也许就会在action中读出数据然后,封装到actionform中由jsp页面显示。使用了tiles后完全可以使用一个tiles control在jsp中从数据库中读出需要的数据。这样反而可以更灵活,不要什么都是都从actionForm中来。如果在页面调整的时候actionForm中没有对应的数据怎么办呢?虽然actionForm的设计建议采用粗粒度的设计,但是再怎么粗也不至于可以所有的业务变化吧。
也许是现在都是做的小项目吧,所以特别注意开发效率。为了方便灵活的在页面上拉出需要的数据。而又不至于写过多的脚本或tiles control,所以定义了一个运行HQL的标签。这样就可直接在页面运行HQL,把什么缓存啊,移置,性能,SQL之类全部交给了Hibernate处理这样也算是最大化的发挥出Hibernate的作用吧。标签的设计使用Struts中的 <bean:define/>类似的方式和属性如下:
---运行一个HQL---
<page:hibernate id="test" hql="from com.cms.model.TbaseEnumlist a"
page="2" pagesize="4" >
结果大小:
//直接使用由 <page:hibernate>定义的脚本变量
<%=test.size()%><br>
//使用struts标签操作<page:hibernate>定义的pageContext属性。
<logic:iterate id="element" name="test" type="com.cms.model.TbaseEnumlist" >
<bean:write name="element" property="enumcode"/><br>
</logic:iterate>
</page:hibernate>
---加载一个PO---
<page:hibernate id="test" type="com.cms.model.TbaseEnumlist" primary="15">
枚举名称:
<%=test.getEnumname()%>
</page:hibernate>
这样就可以方便的在jsp页面中从数据库中读取数据了。也算是满足了那些习惯在jsp中写sql查询的开发习惯了吧。虽然这样做也有很多不好的地方。但是对于目前的项目来说,这算是最好的方法了。

还有一点可能我都不回用的标签:(在jsp中直接实现PO的CRUD操作)
<%
com.cms.budget.data.TsysSchemeTestdetail detail = new
com.cms.budget.data.TsysSchemeTestdetail();
detail.setBcrate(java.math.BigDecimal.valueOf(10));
pageContext.setAttribute("detail",detail);
%>
<page:hibernate id="detail" action="save" />
<%
detail.setBxyzxs(java.math.BigDecimal.valueOf(10));
%>
<page:hibernate id="detail" action="update">
<%
//如果在hibernate处理出现错误。
if(hibernateError == null)
{
out.println("更新成功");
}else
{
out.println(hibernateError);
}
%>
</page:hibernate>
<%
pageContext.setAttribute("detail","");
%>
<page:hibernate id="detail" action="delete">
<%
out.println(hibernateError);
%>
</page:hibernate>



(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
JSP动作(标签)
开发JSP自定义行为
JSP 构架-2种方式:Model I和Model II
JSP的模板
在JSP中用bean封装常用的功能
JSP/Servlet的重定向技术综述
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号