ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>蜜臀久久精品,国产精东传媒成人av电影,国产日本欧美一区二区三区在线http://www.aygfsteel.com/mulin/archive/2007/01/08/92289.html公主她爹公主她爹Mon, 08 Jan 2007 00:40:00 GMThttp://www.aygfsteel.com/mulin/archive/2007/01/08/92289.htmlhttp://www.aygfsteel.com/mulin/comments/92289.htmlhttp://www.aygfsteel.com/mulin/archive/2007/01/08/92289.html#Feedback0http://www.aygfsteel.com/mulin/comments/commentRss/92289.htmlhttp://www.aygfsteel.com/mulin/services/trackbacks/92289.html
View Helper模式告诉我们åQŒæˆ‘们能使用Helpers来ä‹É得在一个应用中åQŒModel数据能够适应表现层的需要。典型的åQŒè¡¨çŽ°å±‚ä¸€èˆ¬éƒ½åŒ…æ‹¬ä¸€äº›JSP™åµé¢ã€‚这些页面由一些用来给用户昄¡¤ºå†…容的HTML和图片组成。然而,当这些页面需要显½CÞZ¸€äº›å­˜å‚¨åœ¨Model上的动态信息的时候,˜q™é‡Œæœ‰ä¸€ä¸ªé—®é¢˜å‡ºçŽîCº†ã€‚你希望能够避免在页面上ä¸ÞZº†æ˜„¡¤ºé‚£äº›åŠ¨æ€æ•°æ®è€Œä‹É用嵌入的Java代码åQŒä½ ž®±å¾—使用一些Helper来帮助你实现上述的功能ã€?/div>
要抛弃那些在控制器Servlet里将一些Modelæ•°æ®ä½œäØ“ä¸€ä¸ªå±žæ€§å­˜å‚¨åœ¨request里面的想法。在一个页面里åQŒä½ è¦èŽ·å–Model数据åQŒæœ‰ä¸‰ç§é€‰æ‹©ã€‚你可以以JSP脚本的åŞ式嵌入Java代码åQ›ä½ ä¹Ÿå¯ä»¥ä‹É用ELåQ›æˆ–者你也可以ä‹É用一个Helper帮你取得数据。根据将表现层和商业逻辑分离的原则,使用一些Helper来帮助我们ä‹É得数据适应表现层的要求比将表现层代码和Java代码混在一èµähœ‰æ„ä¹‰åQˆå‚见图1åQ‰ã€?/div>
å›?
你可以设惻I¼Œé€šè¿‡ä½¿ç”¨½Ž€å•易用的Helper代替Java代码åQŒé¡µé¢è®¾è®¡äh员开发表现层变得½Ž€å•多了。当ç„Óž¼Œå‰ææ˜¯å¼€å‘äh员发布了一个Helper目录òq¶ä¸”详细描述了这些Helper怎么使用åQ›å› ä¸ø™¿™æ ·å¼€å‘äh员才会ä‹É用那些Helper。然而,如果在开发äh员能够提供ä‹ÉHelper˜qè¡Œèµäh¥çš„Model数据之前åQŒé¡µé¢è®¾è®¡äh员就已经设计了页面,ž®±åˆæœ‰æ–°çš„问题。解册™¿™ä¸ªé—®é¢˜çš„一个有用的技巧是在Helper里设¾|®ä¸€äº›å‡æ•°æ®ä»¥ä¾¿åœ¨æ²¡æœ‰Model数据的时候显½Cºï¼›˜q˜æœ‰ä¸€ä¸ªå¯ä»¥æ›¿ä»£çš„æ–ÒŽ(gu¨©)³•是在Model里设¾|®ä¸€äº›èƒ½ä½¿Helper˜qè¡Œçš„假数据。无论哪¿Uæ–¹æ³•,™åµé¢è®¾è®¡äººå‘˜éƒ½ä¸ä¼šåœ¨½{‰å¾…开发äh员的时候闲èµäh¥ã€?/div>
使用Helper有如下优点:
。表现层的组件是标准化的åQŒäؓ应用提供了统一的lookå’Œfeel
。Java代码从页面设计äh员那里被抽离åQŒä‹É得他们有了易用的Helper来访问Model
。如果Model˜q˜ä¸å­˜åœ¨çš„话åQŒä½ å¯ä»¥åˆ›å¾ä¸€äº›Helper来显½CÞZ¸€äº›å‡æ•°æ®ã€‚è¿™æ øP¼Œä¸ç®¡åº”用½E‹åºçš„准备如何,™åµé¢è®¾è®¡äººå‘˜éƒ½å¯ä»¥è¿›è¡Œä»–们的设计工作ã€?/div>
。Helperä½œäØ“ä¸šåŠ¡æ•°æ®å’Œè¡¨çŽ°å±‚çš„ä¸­ä»‹ï¼Œå®ƒå¯ä»¥æŠŠä¸¤è€…æ¸…æ™°çš„åˆ†ç¦»å¼€æ¥ã€?/div>
 
实现JavaBeans Helper的策�/strong>
åœ¨äØ“JSP™åµé¢å¼€å‘Helper的时候,你有两种选择。你可以使用JavaBeans或者定制标½{¾ï¼Œå…·ä½“选择哪一¿Uå–决于你在Helper中所要处理的数据。一般来è¯ß_¼ŒJavaBeans适合你处理单个的数据åQŒè€Œå®šåˆ¶æ ‡½{‘֍´æ›´é€‚合使用在那些处理一¾pÕdˆ—数据的场合。然而,需要着重指出的是,你可以用ä»ÀL„ä¸€¿Uæ–¹æ³•来处理两种¾cÕdž‹çš„æ•°æ®ã€?/div>
实现View Helper模式的策�/div>
你可以在一个JSP™åµé¢é‡Œç”¨JavaBeans来实现Helper。当处理和格式化单一的文本数据时åQŒJavaBeans模式的Helper非常½Ž€å•易用。那些内¾|®çš„JSP标签会让你非常简单和直观的ä‹É用JavaBeans。对JavaBeansçš„ä‹É用包括简单的声明åQŒåŽé¢å°±å¯ä»¥å¼•用该给定的标签了,ž®±åƒä¸‹é¢é‚£æ ·åQ?/div>
<%-- Declare bean --%>
<jsp:useBean id="myBean" class="jspBook.util.myBean"/>
<%-- Get first name from bean --%>
Hello <jsp:getProperty name="myBean" property="firstName"/>,
welcome to Acme Products' oïBnline store!
JavaBeans能做的事可不仅仅是简单的ž®†æ•°æ®é¡¹ä»ŽModel里取出来åQŒå®ƒ˜q˜èƒ½æ ¼å¼åŒ–制定的数据™åV€è¿›è¡Œè®¡½Ž—或产生大块的数据项。如你所惻I¼Œå®ƒéžå¸”R€‚合使用内嵌的JSP标签来获取数据项。但是如果你使用JavaBeans太多åQŒé‚£ä¹ˆä½ çš„JSP™åµé¢ž®†å› ä¸ºå¤ªå¤šçš„Javaä»£ç è€Œå˜å¾—æØœä¹×ƒ¸å ªï¼Œä¸ç®¡ä½ ä‹É用多ž®‘EL。在˜q™ç§æƒ…å†µä¸‹ï¼Œä½ åº”è¯¥æŠŠæ‰€æœ‰çš„é™„åŠ è¡ŒäØ“ž®è£…åˆîC¸€ä¸ªåˆ¶å®šæ ‡½{ùN‡Œé¢åŽ»ã€?/div>
 
实现定制标签Helper的策�/strong>
ä¸ÞZº†å¯¹ä»˜å¤æ‚Modelçš„è{换,定制标签能够嵌入Java代码åQŒæ“ä½œå¥½å‡ ä¸ªæœ‰å…³æ•°æ®çš„算子,只提供简单的标签¾l™é¡µé¢è®¾è®¡è€…ä‹Éç”¨ã€‚äØ“äº†ä‹É用定制标½{¾ï¼Œä½ å¿…™åÕd†™ä¸€ä¸ªç‘ô承了TagSupport或BodyTagSupport的类。你可以在标½{‘Öº“描述½W¦é‡Œå£°æ˜Žä½ çš„¾c»ï¼Œå¦‚下所½Cºï¼š
Listing 1. An Example TLD
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 
web-jsptaglibrary_2_0.xsd"
   version="2.0" >
 
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>myTags</short-name>
<description>
   Tag library to support the examples in Chapter 8
</description>
<tag>
   <name>myTag</name>
   <tag-class>jspbook.ch08.myTag</tag-class>
   <body-content>JSP</body-content>
   <attribute>
      <name>myAttribute</name>
      <required>yes</required>
      </attribute>
</tag>
</taglib>
 
通过在JSP™åµé¢é‡Œé¦–å…ˆä‹É用taglib指示½W¦å£°æ˜Žä»¥åŽï¼Œ˜q™ä¸ªå®šåˆ¶æ ‡ç­¾ž®Þpƒ½å¤Ÿåœ¨™åµé¢é‡Œè¢«å¼•用åQŒå¦‚下所½Cºï¼š
<%@ taglib uri="/helpers" prefix="helpers" %>
 
<helpers:myTag myAttribute="some value">
   Body text...
</helpers:myTag>
 
我更們֐‘于ä‹É用定制标½{¾ä½œä¸ºView Helper的实现方式。因为当它们集中存储在应用服务器的时候,它们¾l™äº†å¼€å‘äh员更多的讉K—®Servlet上下文的权限òq¶ä¸”提供了更多的性能优点。另一个我們֐‘于ä‹É用定制标½{„¡š„原因是它更利于非Java开发äh员直观的使用åQŒå®ƒä»¬çš„æ ¼å¼æ›´åƒæ ‡å‡†çš„HTML标签åQŒè¿™äº›HMTL标签对于我们大多数的人来说再熟æ?zh¨¨n)‰ä¸è¿‡ã€‚最后,一旦这些定制标½{„¡»˜q‡äº†ä½ çš„开发和‹¹‹è¯•åQŒä½ ž®±å¯ä»¥åœ¨ä½ çš„æ•´ä¸ª™å¹ç›®çš„æ‰€æœ‰JSP™åµé¢ä½¿ç”¨å®ƒä»¬ã€‚一旦这些定制标½{¾è¢«è®¾è®¡å¾—更加通用åQŒé‚£ä¹ˆä½ å¯ä»¥ž®†å®ƒä»¬æ‰“包è“v来在所有的™å¹ç›®ä¸­ä‹É用到它们ã€?/div>
 
实现Model分离的策�/strong>
不管是ä‹É用定制标½{¾æˆ–者JavaBeansåQŒæä¾›ç‹¬ç«‹çš„Helper是非常有用的åQŒè¿™äº›ç‹¬ç«‹çš„Helper能够在没有Model数据存在的时候提供一¾pÕdˆ—的假数据来代替Model数据。这使得™åµé¢å¼€å‘äh员可以独立于开发团队而完成它们的ä»ÕdŠ¡ã€‚äØ“äº†å®žçŽ°è¿™¿Uç­–略,Helper需要去‹‚€‹¹‹Model的存在,以便使用一个真实的Model数据或者ä‹É用一个静态的假Model数据åQˆå¦‚下图åQ‰ã€?/div>
按照˜q™ä¸ªæ€èµ\åQŒæˆ‘们需要创å»ÞZ¸€ä¸ªé™æ€çš„Model来精¼‹®å¤åˆ¶çœŸå®žçš„Model。不是所有的时候都能让˜q™ä¸¤è€…保持同步。一个在某些时候更完美的替代方法是åQŒè®©å¼€å‘äh员创造一些假数据到Model里头åQŒä»¥ä¾‰K¡µé¢å¼€å‘äh员能够当作真实Modelå·²ç»å­˜åœ¨ä¸€æ øP¼›åŒæ—¶ä¹Ÿç¡®ä¿äº†ä»–们自己工作的那个Model永远是正¼‹®çš„åQˆè§å›¾ä¸‰åQ‰ã€?/div>
 


]]>JAXP的演˜q?/title><link>http://www.aygfsteel.com/mulin/archive/2007/01/04/91673.html</link><dc:creator>公主她爹</dc:creator><author>公主她爹</author><pubDate>Thu, 04 Jan 2007 00:54:00 GMT</pubDate><guid>http://www.aygfsteel.com/mulin/archive/2007/01/04/91673.html</guid><wfw:comment>http://www.aygfsteel.com/mulin/comments/91673.html</wfw:comment><comments>http://www.aygfsteel.com/mulin/archive/2007/01/04/91673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mulin/comments/commentRss/91673.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mulin/services/trackbacks/91673.html</trackback:ping><description><![CDATA[     摘要: 摘要:JAXP åQˆå…¨¿U°Java API for XML ParsingåQ‰çš„可插拔性(pluggabilityåQ‰åœ¨å¼€å‘社区里引è“v很大的蘪动。这点也是JAXP的精华所在。开发äh员可以编写自å·Þqš„xml处理器,只要它符合JAXPçš„APIsåQŒè¿™æ ·åº•层不同的xml处理器可以ä“Q意切换而不用改应用½E‹åºçš„代码。JAXP的演˜q›ä½œè€?Rahul Srivastava译è€?[http://www.matrix.org.c...  <a href='http://www.aygfsteel.com/mulin/archive/2007/01/04/91673.html'>阅读全文</a><img src ="http://www.aygfsteel.com/mulin/aggbug/91673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mulin/" target="_blank">公主她爹</a> 2007-01-04 08:54 <a href="http://www.aygfsteel.com/mulin/archive/2007/01/04/91673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">ºâË®ÊÐ</a>| <a href="http://" target="_blank">×ÛÒÕ</a>| <a href="http://" target="_blank">ÁÙÇåÊÐ</a>| <a href="http://" target="_blank">ÓéÀÖ</a>| <a href="http://" target="_blank">³þÐÛÊÐ</a>| <a href="http://" target="_blank">È·É½ÏØ</a>| <a href="http://" target="_blank">ÎÚº£ÊÐ</a>| <a href="http://" target="_blank">¹ðƽÊÐ</a>| <a href="http://" target="_blank">á³á°ÏØ</a>| <a href="http://" target="_blank">Äþ¶¼ÏØ</a>| <a href="http://" target="_blank">ÉÜÐËÊÐ</a>| <a href="http://" target="_blank">ÃöÇåÏØ</a>| <a href="http://" target="_blank">¶ëüɽÊÐ</a>| <a href="http://" target="_blank">·½ÕýÏØ</a>| <a href="http://" target="_blank">Ì©ÐËÊÐ</a>| <a href="http://" target="_blank">¾äÈÝÊÐ</a>| <a href="http://" target="_blank">²ý½­</a>| <a href="http://" target="_blank">°×ÀÊÏØ</a>| <a href="http://" target="_blank">Í¨É½ÏØ</a>| <a href="http://" target="_blank">ºç¿ÚÇø</a>| <a href="http://" target="_blank">Àè³ÇÏØ</a>| <a href="http://" target="_blank">ÖÐÎÀÊÐ</a>| <a href="http://" target="_blank">ÔªÄ±ÏØ</a>| <a href="http://" target="_blank">Õò½­ÊÐ</a>| <a href="http://" target="_blank">µ÷±øÉ½ÊÐ</a>| <a href="http://" target="_blank">Ì©°²ÊÐ</a>| <a href="http://" target="_blank">ÄôÈÙÏØ</a>| <a href="http://" target="_blank">ĵµ¤½­ÊÐ</a>| <a href="http://" target="_blank">¹²ºÍÏØ</a>| <a href="http://" target="_blank">ÄÏ¿µÊÐ</a>| <a href="http://" target="_blank">Î÷³ëÏØ</a>| <a href="http://" target="_blank">ºÍÁúÊÐ</a>| <a href="http://" target="_blank">²©ºþÏØ</a>| <a href="http://" target="_blank">»´ÄÏÊÐ</a>| <a href="http://" target="_blank">»´ÑôÏØ</a>| <a href="http://" target="_blank">·ö·çÏØ</a>| <a href="http://" target="_blank">¶«Ïç×å×ÔÖÎÏØ</a>| <a href="http://" target="_blank">Àײ¨ÏØ</a>| <a href="http://" target="_blank">Ïç³ÇÏØ</a>| <a href="http://" target="_blank">ÇåË®ÏØ</a>| <a href="http://" target="_blank">¿Æ¶û</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>