﻿<?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-pengpenglin-随笔分类-J2EE 框架</title><link>http://www.blogjava.net/pengpenglin/category/28489.html</link><description>成熟 稳重 乐观 自信 进取 责任 梦想 坚持</description><language>zh-cn</language><lastBuildDate>Fri, 17 Sep 2010 11:26:46 GMT</lastBuildDate><pubDate>Fri, 17 Sep 2010 11:26:46 GMT</pubDate><ttl>60</ttl><item><title>【Java框架专题】Spring----Spring的事务传播级别和事务性能优化</title><link>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315445.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 15 Mar 2010 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315445.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/315445.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/315445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/315445.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Spring对事务传播的定义和事务操作性能优化&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2010/03/15/315445.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/315445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2010-03-15 11:09 <a href="http://www.blogjava.net/pengpenglin/archive/2010/03/15/315445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Java框架专题】Hibernate----悲观锁与乐观锁、Hibernate的锁定机制</title><link>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315444.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 15 Mar 2010 03:07:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315444.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/315444.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/315444.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/315444.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 乐观锁定采用的版本策略实际上和SVN的版本冲突解决方案是同样的：采用其它人的(先提交的)、采用自己的(后提交的)、合并他人和自己的(合并冲突更新)<br>悲观锁定(Pessimistic locking)会采用基于数据库提供的锁机制来进行锁定。它会在物理层对行甚至表进行锁定。使得应用的并发性变差。&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2010/03/15/315444.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/315444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2010-03-15 11:07 <a href="http://www.blogjava.net/pengpenglin/archive/2010/03/15/315444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Java框架专题】Hibernate----数据并发与事务隔离</title><link>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315443.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 15 Mar 2010 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315443.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/315443.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315443.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/315443.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/315443.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: READ COMMITITED：不允许读取未提交的数据，但可以读取已提交的数据。所以可能出现不可重复读、和幻像读(读的过程依然可以被修改、增加、删除)<br><br> <br>REPEATABLE READ：通过行锁定，在读的数据不允许其它进程修改。确保已读取的数据不被修改、删除(不可重复读)但无法阻止其它进程写入新数据，所以不能确保读取到新的数据(幻像读)<br> <br>SERIALIZABLE：通过表锁定，彻底禁止读取期间其它进程的修改、删除(屏蔽不可重复读)和增加(屏蔽幻像读)<br> <br>但是不管是那种隔离级别，对第一类丢失更新都是不能接收的&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2010/03/15/315443.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/315443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2010-03-15 11:04 <a href="http://www.blogjava.net/pengpenglin/archive/2010/03/15/315443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Java框架专题】Hibernate---在Hibernate中获取数据方式与缓存使用(转)</title><link>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315440.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 15 Mar 2010 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315440.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/315440.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/315440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/315440.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一级、二级缓存使用的key均为po的主键ID，value即为po实例对象，查询缓存使用的则为查询的条件(hql转化而成的sql语句)、查询的参数、查询的页数，value有两种情况，如果采用的是select po.property这样的方式那么value为整个结果集，如采用的是from这样的方式那么value为获取的结果集中各po对象的主键ID，这样的作用很明显，节省内存。&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2010/03/15/315440.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/315440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2010-03-15 11:00 <a href="http://www.blogjava.net/pengpenglin/archive/2010/03/15/315440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【求助】使用HQL查询Oracle日期字段，报"Invalid number"</title><link>http://www.blogjava.net/pengpenglin/archive/2008/05/22/202207.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Thu, 22 May 2008 08:40:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/05/22/202207.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/202207.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/05/22/202207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/202207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/202207.html</trackback:ping><description><![CDATA[<p><span style="font-family: Verdana"><span style="font-size: 10pt">如题，Oracle数据库里面有一批记录，现在我想根据其中一个叫:txn_date的字段来查询记录，在Hbm文件中我配置了该HQL，如下所示：</span></span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">sql-query&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="job.getJobByDate"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;{job.*}&nbsp;from&nbsp;Newsletter_Message&nbsp;job&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;to_char(:dateType,'yyyy-mm-dd&nbsp;hh24:mi')&nbsp;=&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to_char(:jobDate,&nbsp;'yyyy-mm-dd&nbsp;hh24:mi')<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">return&nbsp;</span><span style="color: #ff0000">alias</span><span style="color: #0000ff">="job"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">="com.newsletter.domain.job.Job"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">sql-query</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span></span></div>
<p><br />
<span style="font-family: Verdana"><span style="font-size: 10pt">在DAO方法中我使用了Spring的HibernateTemplate，方法如下：</span></span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-family: Verdana"><span style="font-size: 10pt"><img id="Codehighlighter1_73_447_Open_Image" onclick="this.style.display='none'; Codehighlighter1_73_447_Open_Text.style.display='none'; Codehighlighter1_73_447_Closed_Image.style.display='inline'; Codehighlighter1_73_447_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_73_447_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_73_447_Closed_Text.style.display='none'; Codehighlighter1_73_447_Open_Image.style.display='inline'; Codehighlighter1_73_447_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Job</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getJobByDate(</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Date&nbsp;jobDate,&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;dateType)&nbsp;</span><span id="Codehighlighter1_73_447_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span></span><span id="Codehighlighter1_73_447_Open_Text"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Job</span><span style="color: #000000">&gt;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;&nbsp;getHibernateTemplate().executeFind(<br />
<img id="Codehighlighter1_159_443_Open_Image" onclick="this.style.display='none'; Codehighlighter1_159_443_Open_Text.style.display='none'; Codehighlighter1_159_443_Closed_Image.style.display='inline'; Codehighlighter1_159_443_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_159_443_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_159_443_Closed_Text.style.display='none'; Codehighlighter1_159_443_Open_Image.style.display='inline'; Codehighlighter1_159_443_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HibernateCallback()&nbsp;</span><span id="Codehighlighter1_159_443_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span></span><span id="Codehighlighter1_159_443_Open_Text"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">{&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;Object&nbsp;doInHibernate(Session&nbsp;session)<br />
<img id="Codehighlighter1_249_440_Open_Image" onclick="this.style.display='none'; Codehighlighter1_249_440_Open_Text.style.display='none'; Codehighlighter1_249_440_Closed_Image.style.display='inline'; Codehighlighter1_249_440_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_249_440_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_249_440_Closed_Text.style.display='none'; Codehighlighter1_249_440_Open_Image.style.display='inline'; Codehighlighter1_249_440_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;HibernateException&nbsp;</span><span id="Codehighlighter1_249_440_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span></span><span id="Codehighlighter1_249_440_Open_Text"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.getNamedQuery(</span><span style="color: #000000">"</span><span style="color: #000000">job.getJobByDate</span><span style="color: #000000">"</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query.setString(</span><span style="color: #000000">"</span><span style="color: #000000">dateType</span><span style="color: #000000">"</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">,&nbsp;dateType);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query.setDate(</span><span style="color: #000000">"</span><span style="color: #000000">jobDate</span><span style="color: #000000">"</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">,jobDate);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span></span><span style="color: #000000"><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;query.list();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;}</span></span></span></span><span style="color: #000000"><span style="font-family: Verdana"><span style="font-size: 10pt">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span></span></div>
<p><br />
<span style="font-family: Verdana"><span style="font-size: 10pt">Hibernate生成的SQL语句如下</span></span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;job.TXN_NO&nbsp;</span><span style="color: #0000ff">as</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;TXN1_5_0_,<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;job.TXN_TYPE&nbsp;</span><span style="color: #0000ff">as</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;TXN2_5_0_,<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;job.TXN_DATE&nbsp;</span><span style="color: #0000ff">as</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;TXN3_5_0_,&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">from</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;Newsletter_Message&nbsp;job<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;to_char(?,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">yyyy-mm-dd&nbsp;hh24:mi</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;to_char(?,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">yyyy-mm-dd&nbsp;hh24:mi</span><span style="color: #ff0000">'</span><span style="color: #000000">)</span></span></span></div>
<p><br />
<span style="font-family: Verdana"><span style="font-size: 10pt">每次执行时，总是抛异常，说：<br />
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not execute query; <br />
.....<br />
<strong style="color: #ff0000">Caused by: java.sql.SQLException: ORA-01722: invalid number</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">我实在不明白为什么会报这个错误，难道Hibernate在set date或者set string之前不会对其进行格式的转换吗？于是我又换了另外一个HQL语句，在代码里面提前将Date格式成String，但还是报错：</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">where to_char(dateType,'yyyy-mm-dd hh24:mi') = :strDate </span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">后来实在没办法了，用了一阴招，代码如下，测试通过，但是觉得这种代码太丑陋了。</span></span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-family: Verdana"><span style="font-size: 10pt"><img id="Codehighlighter1_73_503_Open_Image" onclick="this.style.display='none'; Codehighlighter1_73_503_Open_Text.style.display='none'; Codehighlighter1_73_503_Closed_Image.style.display='inline'; Codehighlighter1_73_503_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_73_503_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_73_503_Closed_Text.style.display='none'; Codehighlighter1_73_503_Open_Image.style.display='inline'; Codehighlighter1_73_503_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Job</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getJobByDate(</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Date&nbsp;jobDate,&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;dateType)&nbsp;</span><span id="Codehighlighter1_73_503_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span></span><span id="Codehighlighter1_73_503_Open_Text"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img id="Codehighlighter1_143_499_Open_Image" onclick="this.style.display='none'; Codehighlighter1_143_499_Open_Text.style.display='none'; Codehighlighter1_143_499_Closed_Image.style.display='inline'; Codehighlighter1_143_499_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_143_499_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_143_499_Closed_Text.style.display='none'; Codehighlighter1_143_499_Open_Image.style.display='inline'; Codehighlighter1_143_499_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;getHibernateTemplate().executeFind(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HibernateCallback()&nbsp;</span><span id="Codehighlighter1_143_499_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span></span><span id="Codehighlighter1_143_499_Open_Text"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;Object&nbsp;doInHibernate(Session&nbsp;session)<br />
<img id="Codehighlighter1_228_495_Open_Image" onclick="this.style.display='none'; Codehighlighter1_228_495_Open_Text.style.display='none'; Codehighlighter1_228_495_Closed_Image.style.display='inline'; Codehighlighter1_228_495_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_228_495_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_228_495_Closed_Text.style.display='none'; Codehighlighter1_228_495_Open_Image.style.display='inline'; Codehighlighter1_228_495_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;HibernateException&nbsp;</span><span id="Codehighlighter1_228_495_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span></span><span id="Codehighlighter1_228_495_Open_Text"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;strDate&nbsp;</span><span style="color: #000000">=</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;DateUtil.convertDateToString(jobDate,<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">yyyy-MM-dd&nbsp;HH:mm</span><span style="color: #000000">"</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.createQuery(</span><span style="color: #000000">"</span><span style="color: #000000">from&nbsp;Job&nbsp;job&nbsp;where&nbsp;</span><span style="color: #000000">"</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">to_char(</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;dateType&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,'yyyy-mm-dd&nbsp;hh24:mi')&nbsp;=&nbsp;'</span><span style="color: #000000">"</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">+</span><span style="color: #000000">&nbsp;strDate&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">"</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Job</span><span style="color: #000000">&gt;</span></span></span><span style="color: #000000"><span style="font-family: Verdana"><span style="font-size: 10pt">)&nbsp;query.list();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;}</span></span></span></span><span style="color: #000000"><span style="font-family: Verdana"><span style="font-size: 10pt">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></span></span></div>
<p><br />
<span style="font-family: Verdana"><span style="font-size: 10pt">不知道各位能否解析一下上面那个报错的原因，谢谢先了！</span></span></p>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/202207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-05-22 16:40 <a href="http://www.blogjava.net/pengpenglin/archive/2008/05/22/202207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF国际化总结二例</title><link>http://www.blogjava.net/pengpenglin/archive/2008/03/04/183806.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Tue, 04 Mar 2008 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/03/04/183806.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/183806.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/03/04/183806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/183806.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/183806.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana"><strong>一、&lt;f:view&gt;、&lt;f:loadbundle&gt;和&lt;html&gt;标记的位置<br />
</strong><br />
使用JSF国际化时，如果HTML页面的&lt;title&gt;&lt;/title&gt;部分需要用到绑定资源文件的信息，则&lt;f:view&gt;和&lt;f:loadbundule&gt;标签必须放在&lt;html&gt;标签之外，诸如以下所示：<br style="font-family: " />
<br style="font-family: " />
没有使用资源绑定之前，页面代码如下：<br style="font-family: " />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="Content-Type"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="text/html;&nbsp;charset=UTF-8"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">第一个JSF程序</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">f:view</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">请输入你的名称</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:outputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{user.errMessage}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名称：</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:inputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{user.name}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;密码：</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:inputSecret&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{user.password}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:commandButton&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="送出"</span><span style="color: #ff0000">&nbsp;action</span><span style="color: #0000ff">="#{user.verify}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h:form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">f:view</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<br />
<span style="font-size: 10pt; font-family: Verdana">使用了资源文件之后，代码的&lt;f:view&gt;,&lt;f:loadbundle&gt;标签提前到&lt;html&gt;标签前面：</span><br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">f:view&nbsp;</span><span style="color: #ff0000">locale</span><span style="color: #0000ff">="zh_CN"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">f:loadBundle&nbsp;</span><span style="color: #ff0000">basename</span><span style="color: #0000ff">="messages"</span><span style="color: #ff0000">&nbsp;var</span><span style="color: #0000ff">="msgs"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="Content-Type"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="text/html;&nbsp;charset=UTF-8"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">h:outputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{msgs.titleText}"</span><span style="color: #0000ff">/&gt;&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">h:outputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{msgs.hintText}"</span><span style="color: #0000ff">/&gt;&lt;/</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:outputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{user.errMessage}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:outputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{msgs.nameText}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">：<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:inputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{user.name}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:outputText&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{msgs.passText}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">：<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:inputSecret&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{user.password}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:commandButton&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="#{msgs.commandText}"</span><span style="color: #ff0000">&nbsp;action</span><span style="color: #0000ff">="#{user.verify}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h:form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">f:view</span><span style="color: #0000ff">&gt;</span></div>
<span style="font-size: 10pt; font-family: Verdana"><br style="font-family: " />
否则页面在运行时会提示找不到标签，原因就是因为在加载资源文件之前&lt;title&gt;&lt;/title&gt;就已经使用了绑定，自然无法找到绑定的内容。<br style="font-family: " />
<br style="font-family: " />
</span><span style="font-family: Verdana"><span style="font-family: Verdana"><span style="font-size: 10pt; font-family: "><strong>二、&lt;f:view&gt;的locale属性和faces-config.xml中&lt;locale-config&gt;配置的优先级别：</strong></span></span><br />
<br />
</span>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">1.&lt;f:view&gt;没有设置locale，faces-config.xml没有设置&lt;local-config&gt;时采用浏览器的默认配置</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">2.&lt;f:view&gt;没有设置locale，但faces-config.xml中设置了&lt;local-config&gt;时，如果支持本地语言则采用&lt;local-config&gt;的&lt;supported-locale&gt;配置，否则采用&lt;default-locale&gt;</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">3.&lt;f:view&gt;设置了locale时，faces-config.xml没有设置&lt;local-config&gt;时采用&lt;f:view&gt;的配置</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">4.&lt;f:view&gt;设置了locale时，且faces-config.xml中设置了&lt;local-config&gt;时，采用&lt;f:view&gt;</span></span></p>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/183806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-03-04 22:32 <a href="http://www.blogjava.net/pengpenglin/archive/2008/03/04/183806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Service和Command模式的简单MVC实现</title><link>http://www.blogjava.net/pengpenglin/archive/2008/01/09/174072.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Wed, 09 Jan 2008 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/01/09/174072.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/174072.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/01/09/174072.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/174072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/174072.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MVC和Command模式的一个结合，用于完成小型的Web控制&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/01/09/174072.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/174072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-01-09 17:30 <a href="http://www.blogjava.net/pengpenglin/archive/2008/01/09/174072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>