﻿<?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-大道自然</title><link>http://www.blogjava.net/iamlibo/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 16 Mar 2010 19:52:56 GMT</lastBuildDate><pubDate>Tue, 16 Mar 2010 19:52:56 GMT</pubDate><ttl>60</ttl><item><title>Grails_filterpane插件使用</title><link>http://www.blogjava.net/iamlibo/archive/2010/03/12/315296.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 12 Mar 2010 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/03/12/315296.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/315296.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/03/12/315296.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/315296.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/315296.html</trackback:ping><description><![CDATA[<div style="margin-top: 6px; margin-right: 6px; margin-bottom: 6px; margin-left: 6px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: SimSun, 宋体, 'MS Song', serif; font-size: 12pt; background-color: #ffffff; color: #000000; min-height: 1100px; counter-reset: __goog_page__ 0; line-height: 1.5; ">
<h1 style="font-size: 18pt; background-color: transparent; border-color: initial; border-width: initial; color: #333333; margin-left: 0px; margin-right: 0px; width: 800px; "><font face="arial, helvetica, sans-serif"><strong><font size="5">Grails_filterpane插件使用</font></strong></font></h1>
<br />
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2"><a class="external-link" href="http://www.grails.org/plugin/filterpane" rel="nofollow" style="color: #003366; ">filterpane</a>&nbsp;插件可以根据Domain Class 生成查询界面并从数据库中进行查询，使用方面比较简单。</font></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">通过命令 grails install-plugins filterpane 进行安装，</font></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">在list.gsp面页中头面加入</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">&lt;filterpane:filterPaneIncludes /&gt;</font></font></div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">引入资源</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">&lt;filterpane:currentCriteria domainBean=<span class="code-quote Apple-style-span"><font color="#009100">"AddressList"</font></span>&nbsp;removeImgDir=<span class="code-quote Apple-style-span"><font color="#009100">"images"</font></span>&nbsp;removeImgFile=<span class="code-quote Apple-style-span"><font color="#009100">"bullet_delete.png"</font></span>&nbsp;/&gt;</font></font></div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">显示当前查询条件,domainBean 需要加入包名.</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">&lt;g:paginate total=<span class="code-quote Apple-style-span"><font color="#009100">"${addressListInstanceTotal}"</font></span>&nbsp;params=<span class="code-quote Apple-style-span"><font color="#009100">"${filterParams?filterParams:params}"</font></span>/&gt;</font></font></div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">修改grails 生成的页面，支持查询结果集进行翻页.在没有使用filterpane时也需要将参数传递到后台，默认不支持查询结果集翻页。</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">&lt;g:paginate total=<span class="code-quote Apple-style-span"><font color="#009100">"${addressListInstanceTotal}"</font></span>&nbsp;params=<span class="code-quote Apple-style-span"><font color="#009100">"${params}"</font></span>/&gt; &lt;filterpane:filterButton textKey=<span class="code-quote Apple-style-span"><font color="#009100">"fp.tag.filterButton.text"</font></span>&nbsp;appliedTextKey=<span class="code-quote Apple-style-span"><font color="#009100">"fp.tag.filterButton.appliedText"</font></span>&nbsp;text=<span class="code-quote Apple-style-span"><font color="#009100">"Filter Me"</font></span>&nbsp;appliedText=<span class="code-quote Apple-style-span"><font color="#009100">"Change Filter"</font></span>&nbsp;/&gt;</font></font></div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">显示查询按钮,textKey与appliedTextKey是在资源文件messages-filterpane.properties中指定的，完全支持国际化。</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">&lt;filterpane:filterPane domainBean=<span class="code-quote Apple-style-span"><font color="#009100">"cn.xiangyunsoft.jltv.AddressList"</font></span>&nbsp;additionalProperties=<span class="code-quote Apple-style-span"><font color="#009100">"identifier"</font></span>&nbsp;titleKey=<span class="code-quote Apple-style-span"><font color="#009100">"fp.tag.filterPane.titleText"</font></span>&nbsp;/&gt; &lt;filterpane:filterPane domainBean=<span class="code-quote Apple-style-span"><font color="#009100">"AddressList"</font></span>&nbsp;additionalProperties=<span class="code-quote Apple-style-span"><font color="#009100">"identifier"</font></span>&nbsp;titleKey=<span class="code-quote Apple-style-span"><font color="#009100">"fp.tag.filterPane.titleText"</font></span>&nbsp;/&gt;</font></font></div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">生成查询条件界面.</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">&lt;filterpane:filterPane domainBean=<span class="code-quote Apple-style-span"><font color="#009100">"AddressList"</font></span>&nbsp;additionalProperties=<span class="code-quote Apple-style-span"><font color="#009100">"identifier"</font></span>&nbsp;filterPropertyValues=<span class="code-quote Apple-style-span"><font color="#009100">"{[createDate:[precision:'day',dateFormat:'yyyy-MM-dd'],expDate:[precision:'day']]}"</font></span>&nbsp;filterProperties=<span class="code-quote Apple-style-span"><font color="#009100">"number,networkType,networkName,channel,createDate,expDate,psnName,psnTel,psnMtel,state"</font></span>&nbsp;titleKey=<span class="code-quote Apple-style-span"><font color="#009100">"fp.tag.filterPane.titleText"</font></span>&nbsp;/&gt;</font></font></div>
</div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">filterProperties 指定查询界面显示的条件，filterPropertyValues字段值的格式与默认值。</font></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #000000; "><font size="2">在Controller中加入下面代码:</font></p>
<div class="code panel" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: black; margin-left: 20px; margin-right: 20px; ">
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">def filterService&nbsp;</font></font></div>
<div class="codeContent panelContent" style="margin-top: 0px; margin-bottom: 0px; background-color: #ffffff; background-image: initial; color: #000000; margin-left: 0px; margin-right: 0px; text-align: left; "><font face="Courier New"><font size="3">def filter = {<span class="code-keyword Apple-style-span"><font color="#000091">if</font></span>(!params.max) params.max = 10 render( view:'list', model:[ addressListInstanceList: filterService.filter( params, AddressList ), addressListInstanceTotal: filterService.count( params, AddressList ), filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params), params:params ] )def filter = {&nbsp;<span class="code-keyword Apple-style-span"><font color="#000091">if</font></span>(!params.max) params.max = 10 render( view:'list', model:[ addressListInstanceList: filterService.filter( params, AddressList ), addressListInstanceTotal: filterService.count( params, AddressList ), filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params), params:params ] ) } &nbsp;&nbsp; &nbsp;}</font></font></div>
<div><font face="Courier New"><font size="3"><br />
</font></font></div>
</div>
</div>
<img src ="http://www.blogjava.net/iamlibo/aggbug/315296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2010-03-12 17:10 <a href="http://www.blogjava.net/iamlibo/archive/2010/03/12/315296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Grails _ export 插件使用</title><link>http://www.blogjava.net/iamlibo/archive/2010/03/12/315295.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 12 Mar 2010 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/03/12/315295.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/315295.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/03/12/315295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/315295.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/315295.html</trackback:ping><description><![CDATA[<p class="MsoNormal"><span lang="EN-US">Grails _ export </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">插件使用</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<span lang="EN-US"><a href="http://www.grails.org/plugin/export">Export</a> </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">插件可以将</span><span lang="EN-US">domainClass</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">在数据库中的内容导出到</span><span lang="EN-US">excel
</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:
minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">、</span><span lang="EN-US">pdf </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">、</span><span lang="EN-US">txt </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">等格式的文件，操作方便简单</span><span lang="EN-US">.</span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">使用命令</span><span lang="EN-US">grails install-plugins export </span><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">安装。</span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<span  style="font-family: 宋体; ">使用方法：</span></o:p></span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">页面中加入下面代码：</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;<span  style="font-family: 'Courier New'; font-size: 13px; ">&lt;export:resource /&gt;</span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
mso-font-kerning:0pt"><o:p>&nbsp;&lt;export:formats
/&gt;&nbsp;</o:p></span></p>
<p class="MsoNormal"><span ><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black">&lt;export:formats
formats=</span></span><span class="java-quote"><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:darkred">"['csv', 'excel', 'ods',
'pdf', 'rtf', 'xml']"</span></span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black"> /&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span ><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:black">如果想按条件查询结果集导出数据则需要加入</span></span><span ><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black">params</span></span><span ><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;color:black">参数</span></span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;mso-font-kerning:
0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:teal;mso-font-kerning:
0pt">&lt;</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#3F7F7F;mso-font-kerning:0pt">export:formats </span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#7F007F;mso-font-kerning:
0pt">formats</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">=</span><em><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:#2A00FF;mso-font-kerning:0pt">"['excel',
'rtf']"</span></em><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"> </span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#7F007F;mso-font-kerning:
0pt">params</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">="</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#BF5F3F;mso-font-kerning:
0pt">${</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">filterParams?filterParams:params</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#BF5F3F;
mso-font-kerning:0pt">}</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:teal;
mso-font-kerning:0pt">/&gt;</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black">Controller
</span><span ><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:black">中加入下面代码：</span></span><span ><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:#972C78;mso-font-kerning:0pt">import</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt"> org.codehaus.groovy.grails.commons.ConfigurationHolder<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">// Export service
provided by Export plugin<span style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>def exportService<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>def list = {<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span class="java-keyword"><strong><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:darkblue">if</span></strong></span><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">(!params.max)
params.max = 10<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-tab-count:2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span class="java-keyword"><strong><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:darkblue">if</span></strong></span><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">(params?.format
&amp;&amp; params.format != </span><span class="java-quote"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:darkred">"html"</span></span><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">){<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-tab-count:3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>response.contentType =
ConfigurationHolder.config.grails.mime.types[params.format]<span style="mso-tab-count:2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>response.setHeader(</span><span class="java-quote"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:darkred">"Content-disposition"</span></span><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">, </span><span class="java-quote"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:darkred">"attachment;
filename=books.${params.extension}"</span></span><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">)<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">exportService.export(params.format,
response.outputStream,Book.list(params), [:], [:])<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-tab-count:2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>[ bookInstanceList: Book.list( params )
]<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black"><br />
</span></p>
<p class="paragraph" style="mso-line-height-alt:9.75pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-family:&quot;Courier New&quot;;color:black">自定义导出字段与显示字段名</span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><strong>params</strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">.max = Math.min(</span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:
0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">.max ? </span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;
mso-font-kerning:0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">.</span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#972C78;
mso-font-kerning:0pt">int</span></strong><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">(</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">'max'</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">) : 10, 100)</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;mso-font-kerning:
0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>results =AddressList.</span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:
0pt">list</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">(</span><strong><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">);</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#972C78;mso-font-kerning:0pt">if</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">(</span><strong><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">?.format &amp;&amp; </span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:
0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">.format != </span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"html"</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">){</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;mso-font-kerning:
0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:0pt">response</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">.contentType =
ConfigurationHolder.config.grails.mime.types[</span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:
0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">.format];</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;mso-font-kerning:
0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:0pt">response</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">.setHeader(</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"Content-disposition"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">, </span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"attachment;
filename=books.${params.extension}"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">)</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
mso-font-kerning:0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>List fields = [</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:
0pt">"name"</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"coName"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"mTel"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"officeTel"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"address"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"qq"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"msn"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"email"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"province"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"city"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">];</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Map labels = [</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"name"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">: </span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:
0pt">姓名</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"coName"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">单位名称</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"mTel"</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;font-family:
宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">移动电话</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:
0pt">"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"officeTel"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">:</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:
0pt">办公电话</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"address"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">通讯地址</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"qq"</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"QQ"</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"msn"</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"MSN"</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"email"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"Email"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"province"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;
mso-font-kerning:0pt">:</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:
0pt">省份</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">,</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"city"</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">:</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:#FF00CC;mso-font-kerning:0pt">"</span><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:#FF00CC;mso-font-kerning:0pt">城市</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#FF00CC;
mso-font-kerning:0pt">"</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">]</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;mso-font-kerning:
0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>exportService.export(</span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:
0pt">params</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">.format, </span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;
mso-font-kerning:0pt">response</span></strong><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">.outputStream,results,
fields,labels,[:], [:]) </span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;mso-layout-grid-align:
none;text-autospace:none"><span lang="EN-US" style="font-size:10.0pt;font-family:
&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><span style="mso-tab-count:
3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span><span lang="EN-US" style="font-size:10.0pt;
font-family:&quot;Courier New&quot;;mso-font-kerning:0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt"><span style="mso-tab-count:3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>[addressListInstanceList:
results, addressListInstanceTotal: AddressList.</span><strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#66CCFF;mso-font-kerning:
0pt">count</span></strong><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">()]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:
&quot;Courier New&quot;;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt">其中</span><span lang="EN-US" style="font-size:
10.0pt;font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"> fields </span><span style="font-size:10.0pt;font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
&quot;Courier New&quot;;mso-bidi-font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:
0pt">是需要导出的字段名</span><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Courier New&quot;;
color:black;mso-font-kerning:0pt"> labels </span><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt">是需要显示的列名。</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:&quot;Courier New&quot;;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:&quot;Courier New&quot;;
mso-bidi-font-family:&quot;Courier New&quot;;color:black;mso-font-kerning:0pt"><br />
</span></p>
<img src ="http://www.blogjava.net/iamlibo/aggbug/315295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2010-03-12 17:06 <a href="http://www.blogjava.net/iamlibo/archive/2010/03/12/315295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>grails 查询分页</title><link>http://www.blogjava.net/iamlibo/archive/2010/02/26/313971.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 26 Feb 2010 02:54:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/02/26/313971.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/313971.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/02/26/313971.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/313971.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/313971.html</trackback:ping><description><![CDATA[<p zid="1" id="zw-12708289ba4H7j1BPf2ec">grails 查询分页</p>
<p zid="2" id="zw-1270828b6cbnCehvQf2ec"><br zid="3" id="zw-1270828b8d98IHU8f2ec" />
</p>
<p zid="4" id="zw-1270828b8d9DDrLjXf2ec">grails 生成的list.gsp
默认是带有分页的，但是不支持查询条件分页，就是查询结果不能翻页，google 一下，<span zid="6" id="zw-127082ab94fCdiGkJf2ec">http://garyli.javaeye.com/blog/237100</span>
这篇文章介绍了一种方法，但是得修改原有的代码，不利于以后升级，并且不支持<a zid="10" id="zw-127082cc174o8-6jCf2ec" href="http://www.grails.org/plugin/filterpane"><span zid="7" id="zw-127082c0ba3Ux6Orqf2ec">filterpane</span></a> 插件分页。</p>
<p zid="11" id="zw-127082d3d36KFwk3Lf2ec"><br zid="12" id="zw-127082d3fbb4fppr8f2ec" />
</p>
<p zid="13" id="zw-127082d3fbbKCskflf2ec">经过查看源码发现<span zid="14" id="zw-127082dcfedfh0vp0f2ec">paginate</span> 需要params 参数,而<span id="zw-127082e1b91v58D6ef2ec" zid="15">filterpane</span> 需要<span zid="17" id="zw-127082eb43cDxKcif2ec" class="java-quote">filterParams 参数.
只要在页中加入相应的参数即可。</span></p>
<p zid="32" id="zw-127082fcf79vxmjT8f2ec"><span zid="33" id="zw-127082fcf79rvI3-f2ec" class="java-quote">如果只是使用filterpane
进行查询这样使用：<br zid="34" />
</span></p>
<p zid="22" id="zw-127082f395dPPGK0vf2ec"><span zid="24" id="zw-127082f65c554AHr_f2ec">&lt;g:paginate</span>&nbsp;<span zid="25" id="zw-127082f65c6SZF_zZf2ec">total="${contractInstanceTotal}"
params="${filterParams}" /&gt;</span></p>
<p zid="35" id="zw-127083014e7OupoTwf2ec"><span zid="36" id="zw-127083014e8ZKP4IAf2ec" class="java-quote">如果只是使用自定义查询这样使用：<br zid="18" />
</span></p>
<p zid="19" id="zw-127082eb3e8CoMXyjf2ec"><span zid="27" id="zw-127082fa7537UFVxf2ec">&lt;g:paginate</span>&nbsp;<span zid="29" id="zw-127082fa7544FXZgBf2ec">total="${contractInstanceTotal}"
params="${params}" /&gt;</span></p>
<p zid="37" id="zw-127083063108sJuUNf2ec">如果两种方法都要使用这样使用：<br zid="38" id="zw-1270830638eXjX4etf2ec" />
<span zid="39" id="zw-12708308aabg-6dcGf2ec">&lt;g:paginate</span>&nbsp;<span zid="40" id="zw-12708308aabmpx5dSf2ec">total="${contractInstanceTotal}"
params="${filterParams?filterParams:params}" /&gt;</span></p>
<p zid="37" id="zw-1270830ddbcJnZRlhf2ec"><br id="zw-1270830e099lptjnbf2ec" />
</p>
<p zid="37" id="zw-1270830e0994BbXzcf2ec">这样只要修改页面就可以了，不需改其他的任何代码。</p>
<img src ="http://www.blogjava.net/iamlibo/aggbug/313971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2010-02-26 10:54 <a href="http://www.blogjava.net/iamlibo/archive/2010/02/26/313971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新年献礼_永久试用jira 4.0.1 </title><link>http://www.blogjava.net/iamlibo/archive/2010/02/08/312291.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Mon, 08 Feb 2010 02:08:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/02/08/312291.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/312291.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/02/08/312291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/312291.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/312291.html</trackback:ping><description><![CDATA[<div>
<p><span style="font-family: 宋体; font-size: 18pt;">永久试用</span><span style="font-size: 18pt;">jira</span><span style="font-size: 18pt;"> 4.0.1 </span></p>
<h2><span style="font-family: '微软雅黑','sans-serif'; font-size: 14pt;">现在最新版的jira是4.0.1 可以在官网上下载并申请试用license，
在正常安装并申请试用后，将在30天后过期。将<span>atlassian-extras-2.2.2.jar
</span>解开，反编译com.atlassian.extras.core.DefaultProductLicense.class这个类，将getExpiryDate() 和 getExpiryDate(LicenseProperties properties)两
个方法改下面代码就可以永远的试用jira了。</span></h2>
<p style="text-align: left;" align="left"><strong><span style="font-family: 'courier new'; color: #7f0055; font-size: 10pt;">public</span></strong><span style="font-family: 'courier new'; color: black; font-size: 10pt;"> Date <span style="background: none repeat scroll 0% 0% silver;">getExpiryDate</span>() {</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 'courier new'; color: #3f7f5f; font-size: 10pt;">// return expiryDate == null ?null : new Date(expiryDate.getTime());</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calendar c =Calendar.<em>getInstance</em>();</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.set(Calendar.<em><span style="color: #0000c0;">YEAR</span></em></span>,
c.get(Calendar.<em><span style="color: #0000c0;">YEAR</span></em>)+1);</p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 'courier new'; color: #7f0055; font-size: 10pt;">return</span></strong><span style="font-family: 'courier new'; color: black; font-size: 10pt;">c.getTime();</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="text-align: left;" align="left"><strong><span style="font-family: 'courier new'; color: #7f0055; font-size: 10pt;">private</span></strong><span style="font-family: 'courier new'; color: black; font-size: 10pt;"> Date getExpiryDate(LicenseProperties properties) {</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String expiryDateString
= properties.getProperty(</span><span style="font-family: 'courier new'; color: #2a00ff; font-size: 10pt;">"LicenseExpiryDate"</span><span style="font-family: 'courier new'; color: black; font-size: 10pt;">,</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 'courier new'; color: #2a00ff; font-size: 10pt;">"1970-01-01"</span><span style="font-family: 'courier new'; color: black; font-size: 10pt;">);</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><em><span style="font-family: 'courier new'; color: #0000c0; font-size: 10pt;">log</span></em><span style="font-family: 'courier new'; color: black; font-size: 10pt;">.debug</span><span style="font-family: 'courier new'; color: black; font-size: 10pt;">(</span><span style="font-family: 'courier new'; color: black; font-size: 10pt;">(</span><strong><span style="font-family: 'courier new'; color: #7f0055; font-size: 10pt;">new</span></strong>StringBuilder()).append(<span style="font-family: 'courier new'; color: #2a00ff; font-size: 10pt;">"Expiry date is &lt;"</span><span style="font-family: 'courier new'; color: black; font-size: 10pt;">).append(</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expiryDateString).append(</span>"&gt;"<span style="font-family: 'courier new'; color: black; font-size: 10pt;">).toString());</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: #3f7f5f; font-size: 10pt;">//&nbsp;&nbsp;&nbsp;&nbsp; return DateEditor.getDate(expiryDateString);</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calendar c =Calendar.<em>getInstance</em>();</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.set(Calendar.<em><span style="color: #0000c0;">YEAR</span></em></span>,
c.get(Calendar.<em><span style="color: #0000c0;">YEAR</span></em>)+1);</p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 'courier new'; color: #7f0055; font-size: 10pt;">return</span></strong><span style="font-family: 'courier new'; color: black; font-size: 10pt;">c.getTime();</span></p>
<p style="text-align: left;" align="left"><span style="font-family: 'courier new'; color: black; font-size: 10pt;">&nbsp;&nbsp;&nbsp; }</span></p>
<h2><span style="font-family: '微软雅黑','sans-serif'; font-size: 14pt;">然后将这个类再重新打包到atlassian-extras-2.2.2.jar就可以永远是还有11个月20几天的试用期了。</span></h2>
<h2><br />
</h2>
本方法只做个人学习与研究使用，不得做为商业用途，请支持正版软件!<br />
<br />
</div>
<img src ="http://www.blogjava.net/iamlibo/aggbug/312291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2010-02-08 10:08 <a href="http://www.blogjava.net/iamlibo/archive/2010/02/08/312291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>groovy sql 事务</title><link>http://www.blogjava.net/iamlibo/archive/2009/12/18/306606.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 18 Dec 2009 11:53:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/12/18/306606.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/306606.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/12/18/306606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/306606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/306606.html</trackback:ping><description><![CDATA[<span style="font-family: Simsun"><font face="Courier New"><font size="3"><div>groovy sql 事务</div>def init = { servletContext -&gt;
        Sql.metaClass.withTransaction = { Closure stmt -&gt;
            cacheConnection(){

                connection.autoCommit = false
                try {
                    stmt().each {
                        execute(it.query, it.params)
                    }
                    connection.commit()

                } catch ( e) {
                    connection.rollback()
                    throw e
                } finally {
                    connection.autoCommit = true
                }
            }

        }
    }

    def destroy = {
    }
}


Then, you may invoke it in a service:

      def sql = new Sql(dataSource)

      Connection connection = sql.createConnection();

      try{
          def sql2 = new Sql(connection);
          sql2.withTransaction {
              [
    [query:"insert into table values (?,?,?)", params:[p1, p2, p3]],
    [query:"insert into table2 values (?,?,?)", params:[p4, p5, p6]]

              ]
          }
      }finally{
          if(sql.dataSource){
              connection.close();
          }
      }

There is already a JIRA requesting this to be added to Groovy:
http://jira.codehaus.org/browse/GROOVY-3158. Vote it if you find this
useful.</font></font></span><div><span style="font-family: Simsun"><div><font class="Apple-style-span" face="'Courier New'"><font size="3"><br></font></font></div><div><font class="Apple-style-span" face="'Courier New'"><font size="3"><br></font></font></div><div>	<font class="Apple-style-span" face="'Courier New'"><div><font size="3">public void ttt(){</font></div><div>		<font size="3">Sql.metaClass.useTransaction = { Closure closure -></font></div><div>			<font size="3">java.sql.Connection conn = null</font></div><div>			<font size="3">try { conn = createConnection();</font></div><div>				<font size="3">conn.autoCommit = false;</font></div><div>				<font size="3">Sql sql2 = new Sql( conn );</font></div><div>				<font size="3">closure(sql2);</font></div><div>				<font size="3">conn.commit();</font></div><div>			<font size="3">} catch (e) {</font></div><div>				<font size="3">if(conn != null)</font></div><div>					<font size="3">conn.rollback();</font></div><div>				<font size="3">e.printStackTrace();</font></div><div>				<font size="3">throw e</font></div><div>			<font size="3">} finally {</font></div><div>				<font size="3">if ( conn != null ) {</font></div><div>					<font size="3">conn.autoCommit = true</font></div><div>					<font size="3">if ( dataSource ) { conn.close()</font></div><div>					<font size="3">}</font></div><div>				<font size="3">}</font></div><div>			<font size="3">}</font></div><div>		<font size="3">}</font></div><div>	<font size="3">}</font></div><div><font size="3"><br></font></div></font></div></span><br><br></div><br><img src ="http://www.blogjava.net/iamlibo/aggbug/306606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-12-18 19:53 <a href="http://www.blogjava.net/iamlibo/archive/2009/12/18/306606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>icefaces 1.8.1 no message available</title><link>http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 15 Aug 2009 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/291273.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/291273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/291273.html</trackback:ping><description><![CDATA[在使用icefaces 1.8.1 开发时经常会出现 <span class="postbody">java.lang.RuntimeException: no message available
</span> 这个异常。<br />
<br />
查了好久没有发现是什么原因。<br />
<br />
在将ice下载包中的push-server 部署上之后就没有这个异常了。估计原因是在web.xml 中配置了一个Tomcat Push Servlet 引起的。<br />
web.xml中的部分代码<br />
&nbsp;&nbsp;&nbsp; &lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Tomcat Push Servlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; com.icesoft.faces.webapp.http.servlet.TomcatPushServlet<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/servlet&gt;<br />
<br />
<br />
将这个servlet去掉或者把push-server.war部署上都可以解决。看具体需要了。<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/291273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-08-15 16:48 <a href="http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>redhat5.1_x64 设置VPN</title><link>http://www.blogjava.net/iamlibo/archive/2009/06/29/284607.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Mon, 29 Jun 2009 07:06:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/06/29/284607.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/284607.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/06/29/284607.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/284607.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/284607.html</trackback:ping><description><![CDATA[redhat5.1_x64 设置VPN<br />
<br />
我是使用了pptp 来连接VPN的，在网上找了一些文章，发现在安装的rpm 包的时候的版本很重要。<br />
我的系统是redhat5.1_x64 位，使用的rpm 包有下面几个，在网上和安装盘里找了好长时间，所以下载地址也忘了记下了。<br />
dkms-2.0.17-1.el5.noarch.rpm<br />
kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm<br />
ppp-2.4.4-2.el5.x86_64.rpm<br />
pptpd-1.3.4-1.rhel5.1.x86_64.rpm<br />
pptp-1.7.2-3.rhel5.x86_64.rpm(这个忘记装没装了)<br />
<br />
按照上面的顺序安装好后就可以了。如果出现需要什么key之类的。我选的是无论如何都安装^_^。<br />
接下来就是配置:<br />
1、编辑pptpd主配置文件<br />
vim /etc/pptpd.conf<br />
加入下面2行<br />
&nbsp;
localip 10.0.0.1              # VPN服务器的外网地址,就是客户端连接后，访问服务器的地址。<br />
&nbsp;
remoteip 10.0.0.2-20    # 可分配给VPN客户端的地址<br />
2、增加VPN用户和密码，会立即生效的。<br />
在/etc/ppp/chap-secrets增加两行分别对应如下：<br />
用户名      服务名    密码      IP<br />
例子："abc" pptpd   "abc" *<br />
四、开启服务<br />
service pptpd  start <br />
可以将pptpd 服务加入到启动中。<br />
现在客户端就可以连接了。<br />
<br />
用到的文件包 <a title="文件" href="http://www.blogjava.net/Files/iamlibo/redhatvpn.zip">下载</a><br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/284607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-06-29 15:06 <a href="http://www.blogjava.net/iamlibo/archive/2009/06/29/284607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>seam 学习 3、 表格选择行</title><link>http://www.blogjava.net/iamlibo/archive/2009/05/02/268582.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 02 May 2009 00:19:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/05/02/268582.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/268582.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/05/02/268582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/268582.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/268582.html</trackback:ping><description><![CDATA[在seam 实现表格选择行非常的容易。只需要使用@dataModel 和 @DataModelSelection<br />
看下面代码：<br />
driverBean.java<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;cn.xiangyunsoft.transport3.action;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.io.Serializable;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.List;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.EntityManager;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.PersistenceContext;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.persistence.PersistenceContextType;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.ScopeType;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.Factory;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.In;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.Name;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.Out;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.Scope;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.datamodel.DataModel;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.jboss.seam.annotations.datamodel.DataModelSelection;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;cn.xiangyunsoft.transport3.entity.Driver;<br />
<br />
@Name(</span><span style="color: #000000;">"</span><span style="color: #000000;">driverBean</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
@Scope(ScopeType.SESSION)<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;DriverBean&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Serializable&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@DataModel<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;List</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Driver</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;drivers;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@DataModelSelection<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Out(required&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Driver&nbsp;driver;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@In<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;EntityManager&nbsp;entityManager;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Factory(</span><span style="color: #000000;">"</span><span style="color: #000000;">drivers</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;findMessages()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drivers&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;entityManager<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.createQuery(</span><span style="color: #000000;">"</span><span style="color: #000000;">select&nbsp;driver&nbsp;from&nbsp;Driver&nbsp;driver&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getResultList();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;select()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">select&nbsp;driver&nbsp;=</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;driver);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver.setStoped(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<br />
driverList.xhtml<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE&nbsp;composition&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:composition&nbsp;</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/1999/xhtml"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:s</span><span style="color: #0000ff;">="http://jboss.com/products/seam/taglib"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:ui</span><span style="color: #0000ff;">="http://java.sun.com/jsf/facelets"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:f</span><span style="color: #0000ff;">="http://java.sun.com/jsf/core"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:h</span><span style="color: #0000ff;">="http://java.sun.com/jsf/html"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:rich</span><span style="color: #0000ff;">="http://richfaces.org/rich"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;template</span><span style="color: #0000ff;">="/layout/template.xhtml"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="body"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">rich:panel</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">f:facet&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="header"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">driverList</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">f:facet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="results"</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;">="No&nbsp;driver&nbsp;exists"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rendered</span><span style="color: #0000ff;">="#{empty&nbsp;drivers}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:dataTable&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="driverList"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var</span><span style="color: #0000ff;">="driver"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="#{drivers}"</span><span style="color: #ff0000;">&nbsp;rendered</span><span style="color: #0000ff;">="#{not&nbsp;empty&nbsp;drivers}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">f:facet&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="header"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Id</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">f:facet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#{driver.id}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:selectBooleanCheckbox&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{driver.stoped}"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disabled</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">f:facet&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="header"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">select</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">f:facet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">s:link&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{driver.name}"</span><span style="color: #ff0000;">&nbsp;action</span><span style="color: #0000ff;">="#{driverBean.select}"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h:dataTable</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">rich:panel</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:define</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:composition</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<br />
这样配合就可以实现在单行选中了。<br />
<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/268582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-05-02 08:19 <a href="http://www.blogjava.net/iamlibo/archive/2009/05/02/268582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>seam 学习 2、简单的增删改查</title><link>http://www.blogjava.net/iamlibo/archive/2009/05/01/268527.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 01 May 2009 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/05/01/268527.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/268527.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/05/01/268527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/268527.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/268527.html</trackback:ping><description><![CDATA[<br />
在这里已经建立了一个空的工程，接下来增加一个简单的增删改查操作。这个JBoss Tools已经提供了向导，很方便的。<br />
在transport的工程名上点右键，依次选择NEW 菜单下可以看到：seam action 、seam form 、seam entity ...菜单，我们选择seam entity 就会出现 seam new entity 的对话框了。<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/iamlibo/Snap1.jpg" height="436" width="643" /><br />
输入entity 名称后会自动出现 page name 。如果想改变生成的代码的位置，点击 settings...进行设置。<br />
<br />
点击 finish 后会自动打开driver.xhtml页面.<br />
此时就可以打开浏览器输入http://localhost:8080/transport/driver.seam 会出现新增页面，保存后点击 cancel 按键 到 driverList.xhtml 显示刚才新增的对象.<br />
<br />
会根据设置的代码生成位置 生成 DriverHome.java DriverList.java ,在WebContent 目录下生成 driver.xhtml driverList.xhtml 这4个文件.<br />
<br />
<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/268527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-05-01 17:01 <a href="http://www.blogjava.net/iamlibo/archive/2009/05/01/268527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>seam 学习 1、新建seam 工程</title><link>http://www.blogjava.net/iamlibo/archive/2009/05/01/268524.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 01 May 2009 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/05/01/268524.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/268524.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/05/01/268524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/268524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/268524.html</trackback:ping><description><![CDATA[这个工程是使用eclipse 3.4.2 + JbossTools的向导来建立的，所有没有什么特别需要说明的地方，只要按照向导一步一步进行就可以了。<br />
一、新建seam 工程<br />
&nbsp;&nbsp;&nbsp; 有很多文章是用seam-gen来建立工程然后导入到eclipse里的.现在的Jboss Tools插件已经很好用了,就直接用插件吧.<br />
&nbsp;&nbsp;&nbsp; 选File-&gt;New-&gt;Seam Web Project 就会出现新建seam web 工程的对话框了.<br />
<img src="http://docs.google.com/File?id=dcmzmbb3_73hrfd58r5_b" style="width: 648px; height: 405px;" alt="" /><br />
<br />
工程名输入：transport <br />
Web 工程版本选择2.5<br />
Target Server 选择Tomcat 6 如果没有自己去安装一个,也可以安装其他的服务器.<br />
Configuration 选择seam 2.1 这是主要的,要根据你下载的seam 的版本相对应.<br />
<br />
&nbsp;&nbsp; &nbsp;接下来几步同普通的WEB工程没有什么区别,到seam facte 界面,选择seam runtime,如果没有可以点右侧的add按钮,然后指定到seam 的主要目录.<a href="http://www.seamframework.org/" id="a6:-" title="(需要单独下载的)">(需要单独下载的)</a> ,<br />
&nbsp;&nbsp; &nbsp;然后根据情况选择是发布war 还是ear ,这里我们只打算使用的hibernate,不需要ejb,所以只选war包就可以了。<br />
&nbsp;&nbsp;&nbsp; 下面是数据库的设置,根据向导设置,选择合适的数据库可以了.我们这里选择的是mysql5.<br />
&nbsp;&nbsp;&nbsp; 在code generation 中设置一下生成代码的包名.<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; 设置好后,点完成,就可以看到生成两个项目,一个是主项目,另一个测试项目.
<br />
<br />
<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/268524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-05-01 16:11 <a href="http://www.blogjava.net/iamlibo/archive/2009/05/01/268524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>