ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>久久九九有精品国产23,亚洲日韩欧美一区二区在线,色婷婷久久久http://www.aygfsteel.com/yyp/zh-cnMon, 14 Jul 2025 09:23:50 GMTMon, 14 Jul 2025 09:23:50 GMT60Tapestry中RenderBody的用æ³?/title><link>http://www.aygfsteel.com/yyp/archive/2006/01/27/29319.html</link><dc:creator>yyp</dc:creator><author>yyp</author><pubDate>Fri, 27 Jan 2006 14:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/yyp/archive/2006/01/27/29319.html</guid><wfw:comment>http://www.aygfsteel.com/yyp/comments/29319.html</wfw:comment><comments>http://www.aygfsteel.com/yyp/archive/2006/01/27/29319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yyp/comments/commentRss/29319.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yyp/services/trackbacks/29319.html</trackback:ping><description><![CDATA[<P><FONT size=2>在做一个网站时åQŒæˆ‘们通常要做一个框æžÓž¼Œä»¥åŽçš„内定wƒ½åœ¨æ¡†æž‰™‡Œå±•现åQŒè¿™ž®±éœ€è¦RednderBody了,如下åQ?<BR><FONT color=#008000>//使用了Border˜q™ä¸ªç›´å®šä¹‰çš„¾l„äšgåQˆBorder.htmlåQ?Border.jwcåQ?Border.java)</FONT><BR></FONT><FONT face="Courier New"><FONT size=2><FONT color=#0000ff><span jwcid="@Border"><BR><TABLE align=center border=0><BR>   <TR><BR>      <TD>˜q™æ˜¯åµŒå…¥™åµé¢</TD><BR>   </TR><BR></TABLE><BR><br/><BR></span></FONT><BR></FONT></FONT><FONT size=2><FONT color=#008000><BR>//Border.html <BR></FONT><html jwcid="@Shell" title="RenderBody Example"><BR>   <body jwcid="@Body"><BR>      <table width="100%" cellspacing="0" border="0"><BR>         <tr><BR>           <td>在这里开å§?lt;/td><BR>         </tr><BR>         <tr><BR>           <td><BR>              <span jwcid="@RenderBody">Page content goes here.</span><BR>           </td><BR>        </tr><BR>        <tr><BR>           <td>在这里结æ?lt;/td><BR>        </tr><BR>     </table><BR>  </body><BR></html><BR>最后的¾l“æžœæ˜?<BR><html jwcid="@Shell" title="RenderBody Example"><BR>   <body jwcid="@Body"><BR>      <table width="100%" cellspacing="0" border="0"><BR>         <tr><BR>           <td>在这里开å§?lt;/td><BR>         </tr><BR>         <tr><BR>           <td><BR>    <FONT face="Courier New">      </FONT></FONT><FONT face="Courier New"><FONT size=2><SPAN style="COLOR: #0000ff"><TABLE align=center border=0><BR>           <TR><BR>              <TD>˜q™æ˜¯åµŒå…¥™åµé¢</TD><BR>           </TR><BR>        </TABLE><BR>        </SPAN><SPAN style="COLOR: #0000ff"><br/></SPAN></FONT></FONT><FONT face=Tahoma><BR></FONT><FONT size=2>           </td><BR>        </tr><BR>        <tr><BR>           <td>在这里结æ?lt;/td><BR>        </tr><BR>     </table><BR>  </body><BR></html><BR></FONT></P><img src ="http://www.aygfsteel.com/yyp/aggbug/29319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yyp/" target="_blank">yyp</a> 2006-01-27 22:58 <a href="http://www.aygfsteel.com/yyp/archive/2006/01/27/29319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>™åµé¢è·Œ™{¾cȝ»„ä»Óž¼šActionLink, DirectLink, ExternalLink, GenericLink, ServiceLinkhttp://www.aygfsteel.com/yyp/archive/2006/01/27/29316.htmlyypyypFri, 27 Jan 2006 14:25:00 GMThttp://www.aygfsteel.com/yyp/archive/2006/01/27/29316.htmlhttp://www.aygfsteel.com/yyp/comments/29316.htmlhttp://www.aygfsteel.com/yyp/archive/2006/01/27/29316.html#Feedback2http://www.aygfsteel.com/yyp/comments/commentRss/29316.htmlhttp://www.aygfsteel.com/yyp/services/trackbacks/29316.htmlActionLink¾l„äšg

™åµé¢å“åº”æ—Óž¼Œåˆ›å¾äº†ä¸€ä¸ªé“¾æŽ¥ã€‚如果触发了链接æ—Óž¼Œ¾l„äšgActionLink得到一个监听器åQˆé€šè¿‡è°ƒç”¨æ–ÒŽ³•actionTriggered()åQ‰ã€?BR>
DirectLink¾l„äšg

DirectLink¾l„äšg涉及åˆ?/FONT>sessionåQŒä¸ŽExternalLink¾l„äšg的区别有两个åQ?BR>  ½W¬ä¸€åQ?DirectLink涉及sessionåQ?/FONT>DirectLink拥有一ä¸?/FONT>boolean¾cÕdž‹çš?/FONT>stateful参数来选择statefulæˆ?/FONT>statelessåQŒè¯¥å‚数默认ä¸?/FONT>trueåQŒå³stateful。è€?/FONT>ExternalLink却不涉及sessionåQ?/FONT>ExternalLinkä»…ä»…æ˜?/FONT>statelessåQŒä¸èƒ½å¤Ÿé€‰æ‹©ã€?
 
½W¬äºŒåQšéžå¸”R‡è¦çš„æ˜¯ï¼ŒDirectLinkä¸?/FONT>ExternalLink参数传递方式不一栗÷€?/FONT>DirectLink通过listener监听æ–ÒŽ³•ž®†å‚数“扔”给下一个页面。è€?/FONT>ExternalLink通过在下一个页面实çŽ?/FONT>IExternalPage接口以及activateExternalPageæ–ÒŽ³•“接收”参数ã€?/SPAN> 
  ä¸ÞZº†å®žçŽ°åˆ†é¡µåŠŸèƒ½åQŒæˆ‘们ä‹Éç”?/FONT>DirectLink¾l„äšg实现。在下面的例å­?FONT color=#000000>åQŒæ¯ä¸ªé¡µé¢æˆ‘们只昄¡¤º10条数据,那么HQLž®±åªä»Žæ•°æ®åº“中查询出10条数据。对于页面来è¯ß_¼Œž®±éœ€è¦å®žçŽ°â€œä¸‹ä¸€™åµâ€ï¼ˆæˆ–“上一™åµâ€ï¼‰™åµé¢è·Œ™{åQŒä»¥åŠå‘我们的业务逻辑层方法传递分™åµå‚敎ͼˆå›_½“前页码,以及每页昄¡¤ºæ•°æ®æ•ŽÍ¼‰ã€?BR>è¯ïLœ‹å¯¹åº”çš?/FONT>HTMLæ–‡äšg中相关代码: 
   <span jwcid="@Conditional" condition="ognl:firstDisable"> 
         <span jwcid="first">首页</span> 
         <span jwcid="previous">上一™å?/FONT></span> 
   
</span> 
   
½W?<span jwcid="@Insert" value="ognl:pageNo" /> ™å?/FONT> 
   
<span jwcid="@Conditional" condition="ognl:lastDisable"> 
         <span jwcid="next">下一™å?/FONT></span> 
         <span jwcid="last">ž®ùN¡µ</span> 
   </span> 
 å…?/FONT> <span jwcid="@Insert" value="ognl:total" /> ™å?/FONT>
åœ?/SPAN>pageæ–‡äšg中声明相关组ä»Óž¼š 
  
<component id="first" type="DirectLink"> 
   <binding name="listener" expression="listeners.changePage"/> 
   <binding name="parameters" expression="new java.lang.Object[]{first,maxResult}"/> 
 </component>
 <component id="previous" type="DirectLink"> 
   <binding name="listener" expression="listeners.changePage"/> 
   <binding name="parameters" expression="new java.lang.Object[]{previous, maxResult}"/>
   <binding name="disabled" expression="previousDisable"/>
 </component>
 <component id="next" type="DirectLink"> 
   <binding name="listener" expression="listeners.changePage"/> 
   <binding name="parameters" expression="new java.lang.Object[]{next, maxResult}"/> 
   <binding name="disabled" expression="nextDisable"/>
 </component>
 <component id="last" type="DirectLink"> 
   <binding name="listener" expression="listeners.changePage"/> 
   <binding name="parameters" expression="new java.lang.Object[]{last,maxResult}"/>
 </component>
  DirectLink¾l„äšg表现ä¸ÞZ¸€ä¸?/SPAN>HTML<a>元素åQŒç”¨æ¥æä¾›ä¸€ä¸?/SPAN>URLåQŒå½“用户点击æ—Óž¼Œè§¦å‘™åµé¢ä¸­ä¸€ä¸ªç‰¹å®šçš„监听æ–ÒŽ³•ã€?BR>  在实现分™åµé¡µé¢èŸ©è½¬çš„四个¾l„äšgé‡Œï¼Œéƒ½å£°æ˜ŽäØ“åŒä¸€ä¸?/SPAN>listener监听æ–ÒŽ³•。请看相åº?/SPAN>java中的对应监听æ–ÒŽ³•changePage的代码:
public void changePage(IRequestCycle cycle) { 
   //Tapestry4.0已经deprecated了cycle.getListenerParameters()
   Object[] parameters = cycle.getServiceParameters(); 
   //获取当前™å늠 
   Integer ig1 = (Integer) parameters[0]; 
   int i1 = ig1.intValue(); 
   setPageNo(i1); 
   //获取每页最大显½Cºæ•°ç›?nbsp;
   Integer ig2 = (Integer) parameters[1]; 
   int i2 = ig2.intValue(); 
   setMaxResult(i2);
}
  对于DirectLinkåQŒparameters参数的赋值方式于ExternalLink一栗÷€‚这里获取的是一个数¾l„,˜q™ä¸ªæ•°ç»„包含了两样信息:卛_°†è·Œ™{的页码数åQŒä»¥åŠå³ž®†èŸ©è½¬çš„™åµé¢æ˜„¡¤ºå¤šå°‘条数据ã€?BR>  在前面,我们提到˜q‡ï¼Œ™åµé¢çš„javaæ–‡äšg在完成页面表现所需数据的处理后åQŒåº”该将其所有成员变量(™åµé¢propertyåQ‰è¿˜åŽŸäØ“åˆå§‹å€¹{€‚所以,“当前页码”以及“每™å‰|œ€å¤§æ˜¾½Cºæ•°æ®â€è¿™ä¸¤ä¸ªæ•°æ®åQŒæˆ‘们将它们“保存”在™åµé¢ä¸Šã€‚当点击触发监听æ–ÒŽ³•后,再由™åµé¢æ¥æä¾›ä¸‹ä¸€ä¸ªé¡µé¢çš„“页码”和“每™å‰|œ€å¤§æ˜¾½Cºæ•°ç›®â€ã€‚然后再查询新的maxResult条数据ã€?
 
˜qè¡Œæ•ˆæžœå›‘Ö¦‚下:


ExternalLink¾l„äšg

ExternalLink¾l„äšg使用的是Tapestryçš?/FONT>9¿U?/FONT>service中的external service。该¾l„äšg使用External Service 创徏¾l§æ‰¿äº?/FONT>IExternalPage接口的一个链接。下面用一个例子说明它的用法ã€?BR><a jwcid="@ExternalLink" page="SuccessPage" parameters='ognl:new java.lang.Object[]{"This is Success Page!", item.id}'disabled="ognl:item.Isable"></a>
page="SuccessPage"˜q™ä¸ªå‚数的作用,ž®±æ˜¯æŒ‡å®šäº†å°†è¦èŸ©è½¬çš„™åµé¢åç§°åQ?/FONT>ExternalLink¾l„äšgçš?/FONT>page参数æ ÒŽ®é…ç½®æ–‡äšgtapestry.applicationæ–‡äšg中的配置扑ֈ°å¯¹åº”çš?/FONT>pageæ–‡äšgåQ?
<page name="SuccessPage" specification-path="/WEBINF/SuccessPage.page"/>
然后åœ?/FONT>SuccessPage.pageæ–‡äšg中,æ ÒŽ®åQ?
<page-specification class="com.ce.tapestry.Success">
扑ֈ°å¯¹åº”çš?/FONT>Success.javaæ–‡äšg。在Success.javaæ–‡äšg中,我们发现该类¾l§æ‰¿äº?/FONT>IExternalPage接口åQ?BR>public abstract class Success implements IExternalPage
以及实现äº?/FONT>activateExternalPage(Object[]åQ?/FONT>IRequestCycle)æ–ÒŽ³•ã€?
 
对于ExternalLink¾l„äšgåQŒå®ƒå¿…é¡»¾l§æ‰¿IExternalPage接口åQŒåƈ实现public void activateExternalPage(Object[] parameters,IRequestCycle cycle)æ–ÒŽ³•。该æ–ÒŽ³•的参æ•?/FONT>Object[]来自该组件的parameters参数的倹{€?disabled参数默认ä¸?/FONT>falseåQŒå½“ä¸?/FONT>trueæ—Óž¼Œä¸èƒ½è¢«â€œç‚¹å‡ Z€ã€?BR>
GenericLink¾l„äšg

¾l„äšgGenericLink通常用于跌™{到应用程序范围以外的链接ã€?/FONT> 虽然GenericLink可以用其他组件也能完成,但是GenericLink更灵‹z»ï¼šå®ƒå¯ä»¥è®¾¾|®äØ“disabledåQŒè±¡DirectLink或è€?/FONT>ActionLink一样也能包å?/FONT>Rollover¾l„äšgã€?BR>使用æ–ÒŽ³•如下åQ?BR><a jwcid="@GenericLink" href="ognl:item.homepage" disabled="false"/>
Href参数åQšå…¶ä½œç”¨å¾ˆæ˜Žæ˜¾ï¼Œž®±æ˜¯æä¾›ä¸€ä¸ªé“¾æŽ¥åœ°å€ã€‚从上例可知åQšä»Žitem.homepage取出地址ã€?BR>disabled参数åQšè¯¥å‚数默认ä¸?/FONT>falseåQŒå½“ä¸?/FONT>trueæ—Óž¼Œä¸èƒ½è¢«â€œç‚¹å‡ Z€ã€‚å…³äº?/FONT>disabled参数åQŒæ‰€æœ?/FONT>link¾cȝ»„仉™ƒ½æœ‰ï¼Œä½œç”¨å‡ç›¸åŒã€?

PageLink¾l„äšg

PageLink¾l„äšg非常½Ž€å•,只需要在page参数中指明需要蟩转到下一个页面的名字。相当于不带参数çš?/FONT>ExternalLink。不˜q‡éœ€è¦æ³¨æ„çš„æ˜¯ï¼ŒPageLinkå’?/FONT>ExternalLink使用的不是同一ä¸?/FONT>serviceåQ?/FONT>该组件ä‹É用了Page Service创徏了另外一个链æŽ?/FONT>URLã€?/FONT>
使用æ–ÒŽ³•误‚§ä¾‹å­åQ?BR><a jwcid="@PageLink" page="Infos"><img src="images/lyb.gif" width="50" height="18" border="0">
</a>
è·Œ™{åˆîC»¥ä¸‹çš„URLåQ?/FONT>http://localhost:8080/hello/helloworld?service=page/Upload

ServiceLink¾l„äšg

创徏ä»ÀL„ä¸å¸¦æœ‰å‚数的引擎服务åQ?/FONT>ServiceLink¾l„äšg用法ä¸?/FONT>ActionLinkåQ?/FONT>PageLinkå’?/FONT>DirectLink½{‰ç»„件相ä¼û|¼Œä½†å¸¸å¸æ€¸Žå…·ä½“的应用服务一起ä‹É用ã€?/FONT>Service参数是要调用çš?/FONT>EngineService对象的名¿U°ã€‚(BodyåQ?/FONT>

以上çš?/FONT>Link¾cȝ»„ä»Óž¼Œéƒ½éœ€è¦åœ¨Body¾l„äšg范围内ä‹É用ã€?/FONT>




]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÓÀµÂÏØ| ÏæÎ÷| ¼ÃÑôÏØ| ¸ÄÔòÏØ| ³ç×óÊÐ| ½­½òÊÐ| ¾°¶«| ÄÉÓºÏØ| ¹§³Ç| °²¹úÊÐ| Õã½­Ê¡| µÂ°²ÏØ| â¿µÏØ| ´ïÈÕÏØ| Ò¶³ÇÏØ| ƽÂÞÏØ| ºáÉ½ÏØ| ¹ó¶¨ÏØ| »¯ÖÝÊÐ| ÔÆºÍÏØ| ¼ÃÄþÊÐ| н¨ÏØ| Ê¯Â¥ÏØ| ÌìÖùÏØ| ºþ¿ÚÏØ| ÍþÄþ| ËìÏªÏØ| ƽ¶¨ÏØ| ¿ËÀ­ÂêÒÀÊÐ| ½ðËþÏØ| Î人ÊÐ| Ô«ÇúÏØ| äàË®ÏØ| ¬ÊÏÏØ| ²ÊƱ| áÓÖÝÊÐ| нòÏØ| ãë´¨ÏØ| ºÍÆ½Çø| ľÀï| Î÷ÏçÏØ|