﻿<?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-ALL is Well！-随笔分类-Freemarker</title><link>http://www.blogjava.net/jnbzwm/category/47055.html</link><description>敏捷是一条很长的路，摸索着前进着</description><language>zh-cn</language><lastBuildDate>Tue, 05 Apr 2011 13:18:23 GMT</lastBuildDate><pubDate>Tue, 05 Apr 2011 13:18:23 GMT</pubDate><ttl>60</ttl><item><title>freemarker数字格式化引入的问题</title><link>http://www.blogjava.net/jnbzwm/archive/2010/12/29/341910.html</link><dc:creator>李 明</dc:creator><author>李 明</author><pubDate>Wed, 29 Dec 2010 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/jnbzwm/archive/2010/12/29/341910.html</guid><wfw:comment>http://www.blogjava.net/jnbzwm/comments/341910.html</wfw:comment><comments>http://www.blogjava.net/jnbzwm/archive/2010/12/29/341910.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/jnbzwm/comments/commentRss/341910.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jnbzwm/services/trackbacks/341910.html</trackback:ping><description><![CDATA[<h3>问题<br />
freemarker在解析数据格式的时候，默认将数字按3位来分割，例如1000被格式化为1,000，这样做看似美观，但在实际操作时候会带来问题。例如我一个页面有一个元素，该元素的值由后台绑定且超过1000，那么当我要使用这个元素的值的时候，便会出现问题。<br />
例如，我在ftl文件中这样写：<br />
</h3>
<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">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="hidden"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="testElement"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="testElement"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${size}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
假设后台绑定的size为1000。<br />
<br />
然后我在js里使用这个testElement元素的值。<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">var</span><span style="color: #000000">&nbsp;t&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">#testElement</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(t);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(parseInt(t));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />alert(Number(t));</span></div>
<h3><br />
得到的值是：<br />
1,000<br />
1<br />
NaN<br />
<br />
这下悲剧了，没有一个是我想要的数值类型1000，这让我情何以堪啊。<br />
<br />
我之前有一个随笔，<a title="基于Struts2、Freemarker的分页组件实现(附工程源码) " href="http://www.blogjava.net/jnbzwm/archive/2010/12/01/339528.html">基于Struts2、Freemarker的分页组件实现(附工程源码) </a>，便因为freemarker的数字格式化问题，存在一个bug。<br />
在数据超过1000时候，点击下一页，便会报错。原因是将1,000传到了后台，当作是总记录数，而这个值并非数值。<br />
<br />
解决问题<br />
* 在模板中直接加.toString()转化数字为字符串，如：${size.toString()}；<br />
* 在freemarker配置文件freemarker.properties(在类路径下即可)加&lt;#setting number_format="#"&gt;；<br />
* 在模板中直接加&lt;#setting number_format="#"&gt;；<br />
* 通过freemarker.template.Configuration的config.setNumberFormat("#")来设定freemarker对数值的格式化;</h3>
<h3>其实后三种方法的思路是一致的，只是实现方法不同而已。如果应用中已经存在了&nbsp;<span style="font-size: 12px; line-height: 18px; font-family: Tahoma">freemarker.properties 并配置了其他的属性，可以在这里配置，否则推荐使用最后一种方法。<br />
<br />
最后我是用最后一种方法解决的问题。分页组件上的问题也解决了。</span> </h3>
<img src ="http://www.blogjava.net/jnbzwm/aggbug/341910.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jnbzwm/" target="_blank">李 明</a> 2010-12-29 14:54 <a href="http://www.blogjava.net/jnbzwm/archive/2010/12/29/341910.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Struts2、Freemarker的分页组件实现(附工程源码)</title><link>http://www.blogjava.net/jnbzwm/archive/2010/12/01/339528.html</link><dc:creator>李 明</dc:creator><author>李 明</author><pubDate>Wed, 01 Dec 2010 09:35:00 GMT</pubDate><guid>http://www.blogjava.net/jnbzwm/archive/2010/12/01/339528.html</guid><wfw:comment>http://www.blogjava.net/jnbzwm/comments/339528.html</wfw:comment><comments>http://www.blogjava.net/jnbzwm/archive/2010/12/01/339528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jnbzwm/comments/commentRss/339528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jnbzwm/services/trackbacks/339528.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 14px; line-height: 21px; font-family: Arial">本文为原创，欢迎转载，转载请注明出处<a href="http://www.blogjava.net/jnbzwm/archive/2010/12/01/339528.html">BlogJava</a>。</span></span><br />
<br />
本次分页组件着重于页面（Freemarker部分）、及Action部分。<br />
至于Service及持久层处理，只是做了一个模拟的实现，实际开发中，我是应用了iBatis，封装了分页调用。<br />
由于用法有所不同，所以就不放在源码范围内，也不在这里介绍了。<br />
这里的分页功能只提供了 上一页、下一页、指定页 的分页，但在分页Java代码中包含了 首页、末页的实现。有需要的可自行添加。<br />
<br />
<br />
分页的效果如图：<br />
<img height="330" alt="" src="http://www.blogjava.net/images/blogjava_net/jnbzwm/pagedemo.jpg" width="657" border="0" /><br />
<br />
<br />
分页实现代码介绍：<br />
1.pagination.ftl 分页组件 页面部分。<br />
<br />
2.PageSupport.java 分页Action部分。<br />
<br />
3.WebPager.java 计算分页动作。<br />
<br />
4.Pager.java 保存分页信息，由Action传递到Service，根据Pager对象取得数据。<br />
<br />
5.MockDataBase.java 模拟Dao，实现分页处理。<br />
<br />
<br />
使用该组件的方法如下：<br />
<span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 13px; line-height: 19px; font-family: sans-serif">
<h2 style="font-weight: normal; font-size: 19px; background-image: none; padding-bottom: 0.17em; margin: 0px 0px 0.6em; color: black; padding-top: 0.5em; border-bottom: rgb(170,170,170) 1px solid; background-origin: initial; background-clip: initial"><span class="mw-headline" id=".E7.AC.AC.E4.B8.80.E6.AD.A5.EF.BC.9A.E5.BC.95.E5.85.A5.E5.88.86.E9.A1.B5.E7.BB.84.E4.BB.B6">第一步：引入分页组件</span></h2>
</span></span><span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 13px; line-height: 19px; font-family: sans-serif">
<pre style="border-right: rgb(47,111,171) 1px dashed; padding-right: 1em; border-top: rgb(47,111,171) 1px dashed; padding-left: 1em; padding-bottom: 1em; border-left: rgb(47,111,171) 1px dashed; color: black; line-height: 1.1em; padding-top: 1em; border-bottom: rgb(47,111,171) 1px dashed; background-color: rgb(249,249,249)">&lt;#include "/ftl/ecs/pagination.ftl" /&gt;</pre>
</span></span>分页组件使用了Freemarker的宏。<br />
<br />
<span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 13px; line-height: 19px; font-family: sans-serif">
<h2 style="font-weight: normal; font-size: 19px; background-image: none; padding-bottom: 0.17em; margin: 0px 0px 0.6em; color: black; padding-top: 0.5em; border-bottom: rgb(170,170,170) 1px solid; background-origin: initial; background-clip: initial"><span class="mw-headline" id=".E7.AC.AC.E4.BA.8C.E6.AD.A5.EF.BC.9A.E5.9C.A8ftl.E6.96.87.E4.BB.B6.E4.B8.AD.E4.BD.BF.E7.94.A8.E5.88.86.E9.A1.B5.E7.BB.84.E4.BB.B6">第二步：在ftl文件中使用分页组件</span></h2>
<p style="margin: 0.4em 0px 0.5em; line-height: 1.5em">分页组件需要输入4个参数，分别为id、method、btnCssClass、cssClass，其中id、method必须输入；btnCssClass、cssClass可选。以下是参数详细说明：<br />
1.id&nbsp;: 分页组件的唯一标识。<br />
2.method&nbsp;: 分页用的Action。例如：定义了Action为Pagination，则method输入 Pagination.action；若为动态方法调用，可输入Pagination!query.action<br />
3.cssClass&nbsp;: 分页组件的class属性。例如cssClass="center"。<br />
4.btnCssClass&nbsp;: 分页组件按钮的class属性。例如btnCssClass="btn_history"。<br />
</p>
<pre style="border-right: rgb(47,111,171) 1px dashed; padding-right: 1em; border-top: rgb(47,111,171) 1px dashed; padding-left: 1em; padding-bottom: 1em; border-left: rgb(47,111,171) 1px dashed; color: black; line-height: 1.1em; padding-top: 1em; border-bottom: rgb(47,111,171) 1px dashed; background-color: rgb(249,249,249)">&lt;@pagination id="***" btnCssClass="***" cssClass="***" method="***.action"&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
...
&lt;/tr&gt;
&lt;/table&gt;
&lt;/pagination&gt;
</pre>
<h2 style="font-weight: normal; font-size: 19px; background-image: none; padding-bottom: 0.17em; margin: 0px 0px 0.6em; color: black; padding-top: 0.5em; border-bottom: rgb(170,170,170) 1px solid; background-origin: initial; background-clip: initial"><span class="editsection" style="font-size: 13px; float: right; margin-left: 5px">[<a title="编辑段落：第三步：继承分页类PageSupport" style="background-image: none; color: rgb(0,43,184); text-decoration: none; background-origin: initial; background-clip: initial" href="http://211.94.67.70/wiki/index.php?title=%E5%88%86%E9%A1%B5%E7%BB%84%E4%BB%B6&amp;action=edit&amp;section=3">编辑</a>]</span><span class="mw-headline" id=".E7.AC.AC.E4.B8.89.E6.AD.A5.EF.BC.9A.E7.BB.A7.E6.89.BF.E5.88.86.E9.A1.B5.E7.B1.BBPageSupport">第三步：继承分页类PageSupport</span></h2>
<p style="margin: 0.4em 0px 0.5em; line-height: 1.5em">PageSupport.java继承自ActionSupport.java，在要分页的方法中使用PageSupport.java提供的List pageCall(String module, String target, Map dataMap)分页调用。<br />
通过setPageSize(int pageSize)方法设定每页显示的记录数。<br />
API详细说明：<br />
1.pageCall</p>
<pre style="border-right: rgb(47,111,171) 1px dashed; padding-right: 1em; border-top: rgb(47,111,171) 1px dashed; padding-left: 1em; padding-bottom: 1em; border-left: rgb(47,111,171) 1px dashed; color: black; line-height: 1.1em; padding-top: 1em; border-bottom: rgb(47,111,171) 1px dashed; background-color: rgb(249,249,249)"> 参数说明：
1) String module&nbsp;: 调用service的通道，例如：upf、esf。
2) String target&nbsp;: 要调用的service的方法，例如：com.ailk.ecs.service.TdupfPageService.selectAllUser。
3) Map dataMap&nbsp;: 输入参数。
返回值说明：
List&nbsp;: 页面显示的数据记录。
</pre>
<p style="margin: 0.4em 0px 0.5em; line-height: 1.5em">2.setPageSize</p>
<pre style="border-right: rgb(47,111,171) 1px dashed; padding-right: 1em; border-top: rgb(47,111,171) 1px dashed; padding-left: 1em; padding-bottom: 1em; border-left: rgb(47,111,171) 1px dashed; color: black; line-height: 1.1em; padding-top: 1em; border-bottom: rgb(47,111,171) 1px dashed; background-color: rgb(249,249,249)"> 参数说明：
1) int pageSize&nbsp;: 每页显示记录数。
</pre>
<h2 style="font-weight: normal; font-size: 19px; background-image: none; padding-bottom: 0.17em; margin: 0px 0px 0.6em; color: black; padding-top: 0.5em; border-bottom: rgb(170,170,170) 1px solid; background-origin: initial; background-clip: initial"><span class="editsection" style="font-size: 13px; float: right; margin-left: 5px">[<a title="编辑段落：第四步：Service代码中使用selectPage" style="background-image: none; color: rgb(0,43,184); text-decoration: none; background-origin: initial; background-clip: initial" href="http://211.94.67.70/wiki/index.php?title=%E5%88%86%E9%A1%B5%E7%BB%84%E4%BB%B6&amp;action=edit&amp;section=4">编辑</a>]</span><span class="mw-headline" id=".E7.AC.AC.E5.9B.9B.E6.AD.A5.EF.BC.9AService.E4.BB.A3.E7.A0.81.E4.B8.AD.E4.BD.BF.E7.94.A8selectPage"><br />
第四步：Service代码中使用</span></h2>
<p style="margin: 0.4em 0px 0.5em; line-height: 1.5em">在service封装分页Dao或者分页方法。</p>
</span></span>pagination.ftl代码:<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">#macro&nbsp;</span><span style="color: #ff0000">pagination&nbsp;id&nbsp;method&nbsp;cssClass</span><span style="color: #0000ff">=""</span><span style="color: #ff0000">&nbsp;btnCssClass</span><span style="color: #0000ff">=""</span><span style="color: #ff0000">&nbsp;pageSize</span><span style="color: #0000ff">='10'</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">div&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">='${id}'</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">#nested</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">#--&nbsp;</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" /><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">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="${cssClass}"</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">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="Pagination${id}.gotoPage('prev',&nbsp;'${webPager.pageInfo.currentPage}',&nbsp;'${totalSize}');"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="上一页"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="${btnCssClass}"</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: #ff0000">&amp;nbsp;&amp;nbsp;</span><span style="color: #000000">共&nbsp;${totalPages}&nbsp;页</span><span style="color: #ff0000">&amp;nbsp;&amp;nbsp;</span><span style="color: #000000">第&nbsp;${webPager.pageInfo.currentPage}&nbsp;页</span><span style="color: #ff0000">&amp;nbsp;&amp;nbsp;</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">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">='${id}_inputPageNo'&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">='${id}_inputPageNo'&nbsp;</span><span style="color: #ff0000">size</span><span style="color: #0000ff">="6"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">页&nbsp;</span><span style="color: #ff0000">&amp;nbsp;&amp;nbsp;</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">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="display:none"</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">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="Pagination${id}.gotoPage('input',&nbsp;'${webPager.pageInfo.currentPage}',&nbsp;'${totalSize}');"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="确定"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="${btnCssClass}"</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">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="Pagination${id}.gotoPage('next',&nbsp;'${webPager.pageInfo.currentPage}',&nbsp;'${totalSize}');"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="下一页"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="${btnCssClass}"</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" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</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 id="Codehighlighter1_872_2310_Open_Image" onclick="this.style.display='none'; Codehighlighter1_872_2310_Open_Text.style.display='none'; Codehighlighter1_872_2310_Closed_Image.style.display='inline'; Codehighlighter1_872_2310_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_872_2310_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_872_2310_Closed_Text.style.display='none'; Codehighlighter1_872_2310_Open_Image.style.display='inline'; Codehighlighter1_872_2310_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_872_2310_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 id="Codehighlighter1_872_2310_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_894_897_Open_Image" onclick="this.style.display='none'; Codehighlighter1_894_897_Open_Text.style.display='none'; Codehighlighter1_894_897_Closed_Image.style.display='inline'; Codehighlighter1_894_897_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_894_897_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_894_897_Closed_Text.style.display='none'; Codehighlighter1_894_897_Open_Image.style.display='inline'; Codehighlighter1_894_897_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(</span><span style="color: #000000; background-color: #f5f5f5">!</span><span style="color: #0000ff; background-color: #f5f5f5">this</span><span style="color: #000000; background-color: #f5f5f5">.Pagination$</span><span id="Codehighlighter1_894_897_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 id="Codehighlighter1_894_897_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{id}</span></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;)&nbsp;</span><span id="Codehighlighter1_901_2309_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 id="Codehighlighter1_901_2309_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img id="Codehighlighter1_923_926_Open_Image" onclick="this.style.display='none'; Codehighlighter1_923_926_Open_Text.style.display='none'; Codehighlighter1_923_926_Closed_Image.style.display='inline'; Codehighlighter1_923_926_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_923_926_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_923_926_Closed_Text.style.display='none'; Codehighlighter1_923_926_Open_Image.style.display='inline'; Codehighlighter1_923_926_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; background-color: #f5f5f5">this</span><span style="color: #000000; background-color: #f5f5f5">.Pagination$</span><span id="Codehighlighter1_923_926_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 id="Codehighlighter1_923_926_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{id}</span></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span id="Codehighlighter1_930_931_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 id="Codehighlighter1_930_931_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{}</span></span><span style="color: #000000; background-color: #f5f5f5"><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;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">&nbsp;分页处理方法</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_963_966_Open_Image" onclick="this.style.display='none'; Codehighlighter1_963_966_Open_Text.style.display='none'; Codehighlighter1_963_966_Closed_Image.style.display='inline'; Codehighlighter1_963_966_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_963_966_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_963_966_Closed_Text.style.display='none'; Codehighlighter1_963_966_Open_Image.style.display='inline'; Codehighlighter1_963_966_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;Pagination$</span><span id="Codehighlighter1_963_966_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 id="Codehighlighter1_963_966_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{id}</span></span><span style="color: #000000; background-color: #f5f5f5">.gotoPage&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">(action,&nbsp;c,&nbsp;t)&nbsp;</span><span id="Codehighlighter1_1002_1641_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 id="Codehighlighter1_1002_1641_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<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; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;cmd&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;action;<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;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">&nbsp;当总记录数量小于等于每页记录数量时，分页动作无效</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_1085_1112_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1085_1112_Open_Text.style.display='none'; Codehighlighter1_1085_1112_Closed_Image.style.display='inline'; Codehighlighter1_1085_1112_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1085_1112_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1085_1112_Closed_Text.style.display='none'; Codehighlighter1_1085_1112_Open_Image.style.display='inline'; Codehighlighter1_1085_1112_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(t&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&lt;=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;$</span><span id="Codehighlighter1_1085_1112_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 id="Codehighlighter1_1085_1112_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{webPager.pageInfo.pageSize}</span></span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;</span><span id="Codehighlighter1_1115_1145_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 id="Codehighlighter1_1115_1145_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<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;</span><span style="color: #0000ff; background-color: #f5f5f5">return</span><span style="color: #000000; background-color: #f5f5f5">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><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;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">&nbsp;确定按钮处理</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_1196_1467_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1196_1467_Open_Text.style.display='none'; Codehighlighter1_1196_1467_Closed_Image.style.display='inline'; Codehighlighter1_1196_1467_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1196_1467_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1196_1467_Closed_Text.style.display='none'; Codehighlighter1_1196_1467_Open_Image.style.display='inline'; Codehighlighter1_1196_1467_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(action&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">==</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;'input')&nbsp;</span><span id="Codehighlighter1_1196_1467_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 id="Codehighlighter1_1196_1467_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<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;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;inValue&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;$(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">#${id}_inputPageNo</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).val();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1323_1368_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1323_1368_Open_Text.style.display='none'; Codehighlighter1_1323_1368_Closed_Image.style.display='inline'; Codehighlighter1_1323_1368_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1323_1368_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1323_1368_Closed_Text.style.display='none'; Codehighlighter1_1323_1368_Open_Image.style.display='inline'; Codehighlighter1_1323_1368_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;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(inValue.match(</span><span style="color: #000000; background-color: #f5f5f5">/^</span><span style="color: #000000; background-color: #f5f5f5">[</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">-</span><span style="color: #000000; background-color: #f5f5f5">9</span><span style="color: #000000; background-color: #f5f5f5">]</span><span style="color: #000000; background-color: #f5f5f5">+</span><span style="color: #000000; background-color: #f5f5f5">$</span><span style="color: #000000; background-color: #f5f5f5">/</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&amp;&amp;</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;parseInt(inValue)&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&gt;</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;</span><span id="Codehighlighter1_1323_1368_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 id="Codehighlighter1_1323_1368_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<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;cmd&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;inValue;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_1387_1457_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1387_1457_Open_Text.style.display='none'; Codehighlighter1_1387_1457_Closed_Image.style.display='inline'; Codehighlighter1_1387_1457_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1387_1457_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1387_1457_Closed_Text.style.display='none'; Codehighlighter1_1387_1457_Open_Image.style.display='inline'; Codehighlighter1_1387_1457_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;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span id="Codehighlighter1_1387_1457_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 id="Codehighlighter1_1387_1457_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<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;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">&nbsp;TODO&nbsp;提示错误信息</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">return</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1483_1486_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1483_1486_Open_Text.style.display='none'; Codehighlighter1_1483_1486_Closed_Image.style.display='inline'; Codehighlighter1_1483_1486_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1483_1486_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1483_1486_Closed_Text.style.display='none'; Codehighlighter1_1483_1486_Open_Image.style.display='inline'; Codehighlighter1_1483_1486_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 id="Codehighlighter1_1483_1486_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 id="Codehighlighter1_1483_1486_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{id}</span></span><span style="color: #000000; background-color: #f5f5f5">').load(<br />
<img id="Codehighlighter1_1510_1517_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1510_1517_Open_Text.style.display='none'; Codehighlighter1_1510_1517_Closed_Image.style.display='inline'; Codehighlighter1_1510_1517_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1510_1517_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1510_1517_Closed_Text.style.display='none'; Codehighlighter1_1510_1517_Open_Image.style.display='inline'; Codehighlighter1_1510_1517_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;&nbsp;&nbsp;'$</span><span id="Codehighlighter1_1510_1517_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 id="Codehighlighter1_1510_1517_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{method}</span></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;#$</span><span id="Codehighlighter1_1521_1524_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 id="Codehighlighter1_1521_1524_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{id}</span></span><span style="color: #000000; background-color: #f5f5f5">',<br />
<img id="Codehighlighter1_1540_1624_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1540_1624_Open_Text.style.display='none'; Codehighlighter1_1540_1624_Closed_Image.style.display='inline'; Codehighlighter1_1540_1624_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1540_1624_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1540_1624_Closed_Text.style.display='none'; Codehighlighter1_1540_1624_Open_Image.style.display='inline'; Codehighlighter1_1540_1624_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;&nbsp;&nbsp;</span><span id="Codehighlighter1_1540_1624_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 id="Codehighlighter1_1540_1624_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{action&nbsp;:&nbsp;cmd,<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;totalSize&nbsp;:&nbsp;t,<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;currentPage&nbsp;:&nbsp;c<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">&nbsp;刷新当前页面</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_1678_1681_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1678_1681_Open_Text.style.display='none'; Codehighlighter1_1678_1681_Closed_Image.style.display='inline'; Codehighlighter1_1678_1681_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1678_1681_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1678_1681_Closed_Text.style.display='none'; Codehighlighter1_1678_1681_Open_Image.style.display='inline'; Codehighlighter1_1678_1681_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;Pagination$</span><span id="Codehighlighter1_1678_1681_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 id="Codehighlighter1_1678_1681_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{id}</span></span><span style="color: #000000; background-color: #f5f5f5">.refreshPage&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">()&nbsp;</span><span id="Codehighlighter1_1708_1812_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 id="Codehighlighter1_1708_1812_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<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: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">Pagination${id}.gotoPage('refresh');</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">scrollPage${id}('refresh',&nbsp;"${method}");</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5">;<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;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">&nbsp;页码输入框keyup事件</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">Pagination${id}.keyup&nbsp;=&nbsp;function(inputElem,&nbsp;currentPage,&nbsp;totalSize)&nbsp;{</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">if&nbsp;(inputElem.value.match(/^[0-9]+$/)&nbsp;&amp;&amp;&nbsp;parseInt(inputElem.value)&nbsp;&gt;&nbsp;0)&nbsp;{</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">Pagination${id}.gotoPage(inputElem.value,&nbsp;currentPage,&nbsp;totalSize);</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">}</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">};</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">$("#${id}_inputPageNo").keyup(function(event){</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">if(event.keyCode&nbsp;==&nbsp;13)&nbsp;{</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">Pagination${id}.keyup(this,&nbsp;'${webPager.pageInfo.currentPage}',&nbsp;'${totalSize}');</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">}</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">});</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</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">div</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">#macro</span><span style="color: #0000ff">&gt;</span></div>
<br />
<br />
<br />
请<a href="http://www.blogjava.net/Files/jnbzwm/Pagination.zip">点击</a>下载源码。<br />
<br />
非maven化工程，自己找包吧。<br />
lib包如图：<br />
<img height="246" alt="" src="http://www.blogjava.net/images/blogjava_net/jnbzwm/page_lib.jpg" width="302" border="0" /><br />
  <img src ="http://www.blogjava.net/jnbzwm/aggbug/339528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jnbzwm/" target="_blank">李 明</a> 2010-12-01 17:35 <a href="http://www.blogjava.net/jnbzwm/archive/2010/12/01/339528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决 freemarker 变量没有值时抛出异常</title><link>http://www.blogjava.net/jnbzwm/archive/2010/11/17/338251.html</link><dc:creator>李 明</dc:creator><author>李 明</author><pubDate>Wed, 17 Nov 2010 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/jnbzwm/archive/2010/11/17/338251.html</guid><wfw:comment>http://www.blogjava.net/jnbzwm/comments/338251.html</wfw:comment><comments>http://www.blogjava.net/jnbzwm/archive/2010/11/17/338251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jnbzwm/comments/commentRss/338251.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jnbzwm/services/trackbacks/338251.html</trackback:ping><description><![CDATA[<span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">
<div><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><span style="font-family: Arial; line-height: 21px; font-size: 14px; ">本文为原创，欢迎转载，转载请注明出处<a title="BlogJava" href="http://www.blogjava.net/jnbzwm/" style="color: #1d58d1; text-decoration: none; ">BlogJava</a>。</span></span></div>
<div><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><span style="font-family: Arial; line-height: 21px; font-size: 14px; "><br />
</span></span></div>
默认情况下，freemarker的变量必须有值，如果没有被赋值的变量在页面上使用就会抛出异常，出错的信息都会显示在页面上，让人感觉不爽（开发时还可以忍忍）。</span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">&nbsp;</span><br />
<font face="Tahoma"><span style="font-size: 12px; line-height: 18px;">解决办法：</span></font>
<div><font face="Tahoma"></font><font face="Tahoma"><span style="font-size: 12px; line-height: 18px;"><br />
</span></font>
<div><font face="Tahoma"><span style="font-size: 12px; line-height: 18px; ">方法一、我们可以在页面上使用freemarker变量时 以&nbsp;</span></font><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">${xxx?if_exists} 来处理空值的情况，或采用默认值的方法避免此类问题。但每个freemarker变量都这样处理确实比较让人心烦，请看以下方法。</span></div>
<div><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br />
</span></div>
<div><font face="Tahoma"><span style="font-size: 12px; line-height: 18px;">方法二、在类路径下 加入&nbsp;</span></font><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">freemarker.properties 文件，里面配置&nbsp;classic_compatible=true。</span></div>
<div><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br />
</span></div>
<div><font face="Tahoma"><span style="font-size: 12px; line-height: 18px;">方法三、通过freemarker.template.Configuration的&nbsp;config.setClassicCompatible(true);通过源码我们看到，其实方法二、方法三是思想是一致的，只是实现方法不同而已。如果应用中已经存在了&nbsp;</span></font><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">freemarker.properties 并配置了其他的属性，可以在这里配置，否则推荐使用方法三，毕竟没有每个应用的配置文件实在是都够多了。</span></div>
<div><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; "><br />
</span></div>
<div><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">方法四、在ftl文件内引入&nbsp;</span><span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; ">&lt;!--#setting classic_compatible=true--&gt;。</span></div>
<div><span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; "><br />
</span></div>
<div><font face="verdana, sans-serif"><span style="font-size: 14px; line-height: 21px;">其他关于在spring中的配置这里就省略。现在的项目中没有用到。</span></font></div>
<div><font face="verdana, sans-serif"><span style="font-size: 14px; line-height: 21px;"><br />
</span></font></div>
<div><font face="verdana, sans-serif"><span style="font-size: 14px; line-height: 21px;">总结：方法四是需要在每个需要这样处理的页面都要引入的，比较麻烦，、还是选择使用 方法二、方法三好了。但是方法二、方法三也不是万能的。例如我在action中定义一个MyBean类的对象为 myBean，MyBean中有Comp属性。在页面上就要 用如下语句使用：</span></font><span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; ">${myBean.comp}，这里myBean可能为null，comp也可能为null。这时候 就要使用方法一了，</span><span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; ">${(myBean.comp)!} 或&nbsp;</span><span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">${(<span style="font-family: verdana, sans-serif; line-height: 21px; font-size: 14px; ">myBean.comp)</span>?if_exists}。</span></div>
<div><font face="Tahoma"><span style="font-size: 12px; line-height: 18px;"><br />
</span></font></div>
</div>
<img src ="http://www.blogjava.net/jnbzwm/aggbug/338251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jnbzwm/" target="_blank">李 明</a> 2010-11-17 13:54 <a href="http://www.blogjava.net/jnbzwm/archive/2010/11/17/338251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Struts2和freemarker的异常提示信息的统一处理</title><link>http://www.blogjava.net/jnbzwm/archive/2010/11/16/338179.html</link><dc:creator>李 明</dc:creator><author>李 明</author><pubDate>Tue, 16 Nov 2010 06:53:00 GMT</pubDate><guid>http://www.blogjava.net/jnbzwm/archive/2010/11/16/338179.html</guid><wfw:comment>http://www.blogjava.net/jnbzwm/comments/338179.html</wfw:comment><comments>http://www.blogjava.net/jnbzwm/archive/2010/11/16/338179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jnbzwm/comments/commentRss/338179.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jnbzwm/services/trackbacks/338179.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文为原创，欢迎转载，转载请注明出处BlogJava。Struts2 版本 2.2.1Freemarker版本 2.3.16此统一处理的目的在于 Web层、Service层抛出的业务异常以统一的格式显示在页面的固定位置。首先定义我们的业务异常类。public&nbsp;abstract&nbsp;class&nbsp;BaseException&nbsp;extends&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/jnbzwm/archive/2010/11/16/338179.html'>阅读全文</a><img src ="http://www.blogjava.net/jnbzwm/aggbug/338179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jnbzwm/" target="_blank">李 明</a> 2010-11-16 14:53 <a href="http://www.blogjava.net/jnbzwm/archive/2010/11/16/338179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>