﻿<?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-guangcaiwudong-文章分类-JSF</title><link>http://www.blogjava.net/guangcaiwudong/category/53237.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 18 Jan 2013 13:20:22 GMT</lastBuildDate><pubDate>Fri, 18 Jan 2013 13:20:22 GMT</pubDate><ttl>60</ttl><item><title>JSF参数传递方式之一：f:param标签  </title><link>http://www.blogjava.net/guangcaiwudong/articles/393164.html</link><dc:creator>Kevin_YK</dc:creator><author>Kevin_YK</author><pubDate>Tue, 18 Dec 2012 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/guangcaiwudong/articles/393164.html</guid><wfw:comment>http://www.blogjava.net/guangcaiwudong/comments/393164.html</wfw:comment><comments>http://www.blogjava.net/guangcaiwudong/articles/393164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guangcaiwudong/comments/commentRss/393164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guangcaiwudong/services/trackbacks/393164.html</trackback:ping><description><![CDATA[<div><div fc05="" fc11="" nbw-blog=""  ztag"=""><div><span style="color: black;"><span style="font-size: large;"><span style="font-size: medium;">页面到Bean的参数传递</span></span></span> <br />页面中设置参数： <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>&lt;h:form&gt; &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:commandLink&nbsp;value=<span style="color: #0000ff;">"Test2"</span>&nbsp;action=<span style="color: #0000ff;">"#{paramBean.test}"</span>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<strong style="color:black;background-color:#ffff66">f:param</strong>&nbsp;name=<span style="color: #0000ff;">"name"</span>&nbsp;value=<span style="color: #0000ff;">"zhang"</span>&gt;&lt;/<strong style="color:black;background-color:#ffff66">f:param</strong>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<strong style="color:black;background-color:#ffff66">f:param</strong>&nbsp;name=<span style="color: #0000ff;">"id"</span>&nbsp;value=<span style="color: #0000ff;">"123456"</span>&gt;&lt;/<strong style="color:black;background-color:#ffff66">f:param</strong>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:commandLink&gt; &nbsp;&nbsp;</li><li>&lt;/h:form&gt;&nbsp;&nbsp;</li></ol></div>  <br /><span style="color: red;">注意:这里只能使用h:commandLink标签，而不能使用h:commandButton标签!</span> <br />后台取参数： <br />(1) 通过Request对象取值 <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>HttpServletRequest&nbsp;request&nbsp;=&nbsp;(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.getParameter(<span style="color: #0000ff;">"name"</span>);&nbsp;&nbsp;</li></ol></div>  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)通过RequestParameterMap取值 <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>Map&nbsp;varMap&nbsp;=&nbsp;FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varMap.get(<span style="color: #0000ff;">"id"</span>);&nbsp;&nbsp;</li></ol></div>  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)通过配置文件进行Bean的属性值注入，在Bean的方法中直接使用属性 <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>&lt;managed-bean&gt; &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&lt;managed-bean-name&gt;paramBean&lt;/managed-bean-name&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;managed-bean-<strong><span style="color: #7f0055;">class</span></strong>&gt;com.spg.bean.ParamBean&lt;/managed-bean-<strong><span style="color: #7f0055;">class</span></strong>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;managed-property&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&lt;property-name&gt;id&lt;/property-name&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&lt;property-<strong><span style="color: #7f0055;">class</span></strong>&gt;java.lang.String&lt;/property-<strong><span style="color: #7f0055;">class</span></strong>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&lt;value&gt;#{param.id}&nbsp;&lt;/value&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;/managed-property&gt; &nbsp;&nbsp;</li><li>&lt;/managed-bean&gt;&nbsp;&nbsp;</li></ol></div>  <br /><span style="color: black;"><span style="font-size: large;"><span style="font-size: medium;">页面到页面的参数传递</span></span></span> <br />页面中设置参数： <br />(1) <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>&lt;h:outputLink&nbsp;value=<span style="color: #0000ff;">"param2.jsf"</span>&gt; &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText&nbsp;value=<span style="color: #0000ff;">"Test4"</span>&gt;&lt;/h:outputText&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<strong style="color:black;background-color:#ffff66">f:param</strong>&nbsp;name=<span style="color: #0000ff;">"name"</span>&nbsp;value=<span style="color: #0000ff;">"chen"</span>&gt;&lt;/<strong style="color:black;background-color:#ffff66">f:param</strong>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<strong style="color:black;background-color:#ffff66">f:param</strong>&nbsp;name=<span style="color: #0000ff;">"id"</span>&nbsp;value=<span style="color: #0000ff;">"123456"</span>&gt;&lt;/<strong style="color:black;background-color:#ffff66">f:param</strong>&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:outputLink&gt;&nbsp;&nbsp;</li></ol></div>  <br />(2) <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>&lt;h:outputLink&nbsp;value=<span style="color: #0000ff;">"param2.jsf?name=chen&amp;id=123456"</span>&gt; &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText&nbsp;value=<span style="color: #0000ff;">"Test4"</span>&gt;&lt;/h:outputText&gt; &nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h:outputLink&gt;&nbsp;&nbsp;</li></ol></div>  <br /><span style="color: red;">注意：以上两种方法，不能同时使用!</span> <br />页面中取参数： <br />(1) 使用JSF的值表达式 <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>&lt;h:outputText&nbsp;value=<span style="color: #0000ff;">"#{param.name}"</span>&gt;&lt;/h:outputText&gt;&nbsp; &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:outputText&nbsp;value=<span style="color: #0000ff;">"#{param.id}"</span>&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;</li></ol></div>  <br />(2) 使用JSP的表达式 <br /> <div> <div> <div>Java代码 <a title="复制代码" rel="nofollow" href="http://pity1115.javaeye.com/blog/336426#"><img title="JSF参数传递方式之一：f:param标签 - bxl766 - bxl766的博客" src="http://pity1115.javaeye.com/images/icon_copy.gif" alt="复制代码" /></a></div> </div> <ol><li><span>&lt;%=request.getParameter(<span style="color: #0000ff;">"name"</span>)%&gt; &nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%=request.getParameter(<span style="color: #0000ff;">"id"</span>)%&gt;&nbsp;&nbsp;</li></ol></div> </div></div></div><img src ="http://www.blogjava.net/guangcaiwudong/aggbug/393164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guangcaiwudong/" target="_blank">Kevin_YK</a> 2012-12-18 17:07 <a href="http://www.blogjava.net/guangcaiwudong/articles/393164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>h:commandButton 和 h:commandLink 区别</title><link>http://www.blogjava.net/guangcaiwudong/articles/393161.html</link><dc:creator>Kevin_YK</dc:creator><author>Kevin_YK</author><pubDate>Tue, 18 Dec 2012 08:58:00 GMT</pubDate><guid>http://www.blogjava.net/guangcaiwudong/articles/393161.html</guid><wfw:comment>http://www.blogjava.net/guangcaiwudong/comments/393161.html</wfw:comment><comments>http://www.blogjava.net/guangcaiwudong/articles/393161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guangcaiwudong/comments/commentRss/393161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guangcaiwudong/services/trackbacks/393161.html</trackback:ping><description><![CDATA[<div>最重要的一个区别，h:commandButton 不能传<strong style="color:white;background-color:#880000">参数</strong><br /><br />eg:&lt;h:commandButton&gt;<br />&lt;f:param name="id" value="1"/&gt;<br />&lt;/h:commandButton&gt;<br />在后台bean是收不到这个1的，而用h:commandLink没有问题<br /><br />如果一定要用<strong style="color:black;background-color:#ff9999">button</strong>，可以用<strong style="color:black;background-color:#ffff66">a4j:</strong>commandButton,这个可以传<strong style="color:white;background-color:#880000">参数</strong></div><img src ="http://www.blogjava.net/guangcaiwudong/aggbug/393161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guangcaiwudong/" target="_blank">Kevin_YK</a> 2012-12-18 16:58 <a href="http://www.blogjava.net/guangcaiwudong/articles/393161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于f:setPropertyActionListener标签的问题 </title><link>http://www.blogjava.net/guangcaiwudong/articles/392878.html</link><dc:creator>Kevin_YK</dc:creator><author>Kevin_YK</author><pubDate>Wed, 12 Dec 2012 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/guangcaiwudong/articles/392878.html</guid><wfw:comment>http://www.blogjava.net/guangcaiwudong/comments/392878.html</wfw:comment><comments>http://www.blogjava.net/guangcaiwudong/articles/392878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guangcaiwudong/comments/commentRss/392878.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guangcaiwudong/services/trackbacks/392878.html</trackback:ping><description><![CDATA[<div><div id="article_content"> <p>写了一个简单至极的JSF页面，如下：</p>  <p>&lt;%@ page language="java" pageEncoding="UTF-8"%&gt;<br /> &lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;<br /> &lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;<br /> &lt;html&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;head&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;title&gt;Hello&lt;/title&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/head&gt;<br /> <br /> &nbsp;&nbsp;&nbsp; &lt;body&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;<strong style="color:black;background-color:#ffff66">f:</strong>view&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;h:form&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;h:commandButton actionListener="#{testBean.sayHello}" value="Hello！"&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;<strong style="color:black;background-color:#ffff66">f:</strong>setPropertyActionListener target="#{testBean.userName}"<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; value="zhangsan" /&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;<strong style="color:black;background-color:#ffff66">f:</strong>actionListener type="myex2.lc.MyActionListener"/&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/h:commandButton&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/h:form&gt;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/<strong style="color:black;background-color:#ffff66">f:</strong>view&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/body&gt;<br /> &lt;/html&gt;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>对应的Bean如下：</p> <p>&nbsp;</p> <p>package myex2.lc;<br /> <br /> import javax.faces.event.ActionEvent;<br /> <br /> public class TestBean {<br /> &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; private String userName;<br /> <br /> &nbsp;&nbsp;&nbsp; public String getUserName() {<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return userName;<br /> &nbsp;&nbsp;&nbsp; }<br /> <br /> &nbsp;&nbsp;&nbsp; public void setUserName(String userName) {<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.userName = userName;<br /> &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; public void sayHello(ActionEvent evt) {<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println("sayWord: Hello, " + userName);<br /> &nbsp;&nbsp;&nbsp; }<br /> }</p> <p>控制台上的输出结果会是什么呢？答案如下：</p> <p>sayWord: Hello, null<br /> MyActionListener: Hello, zhangsan</p> <p>&nbsp;</p> <p>为什么两个ActionListener（sayHello方法和 &lt;<strong style="color:black;background-color:#ffff66">f:</strong>actionListener type="myex2.lc.MyActionListener"/&gt;）的输出会不一样？</p>  <p>原因在于&lt;<strong style="color:black;background-color:#ffff66">f:</strong>setPropertyActionListener&gt;也是一个ActionListener，总共3个ActionListener执行的顺序不同。</p> <p>&nbsp;</p> <p><span style="font-size: small;"><span style="color: #ff0000;"><strong>正常情况下，attribute中声明的方法ActionListener，总比&lt;<strong style="color:black;background-color:#ffff66">f:</strong>actionListener&gt;类的ActionListener先执行；</strong> </span> </span> </p> <p><span style="font-size: small;"><span style="color: #ff0000;"><strong>而后&lt;<strong style="color:black;background-color:#ffff66">f:</strong>actionListener&gt;类的ActionListener再按声明的先后顺序依次执行。</strong> </span> </span> </p> <p><span style="font-size: small;"><span style="color: #ff0000;"><strong><br /> </strong> </span> </span> </p> <p>所以在这个例子里面执行的顺序是：#{testBean.sayHello} -&gt; &lt;<strong style="color:black;background-color:#ffff66">f:</strong>setPropertyActionListener&gt; -&gt; &lt;<strong style="color:black;background-color:#ffff66">f:</strong>actionListener&gt;。</p>  <p>同时也可看出，对于attribute类的ActionListener，通过&lt;<strong style="color:black;background-color:#ffff66">f:</strong>setPropertyActionListener&gt;传递参数似乎并不是一个好办法，还需要构建ValueExpression去求值，比较麻烦。</p>  <p>而可以采用&lt;<strong style="color:black;background-color:#ffff66">f:</strong>attribute&gt;代替，再用ActionEvent的getComponent() -&gt; getAttributes()解析出参数，相对方便一些。</p>  <p>而<strong style="color:black;background-color:#ff66ff">action</strong>属性总是在各类ActionListener执行之后才被调用，因此没有此类干扰。</p>  <p>以上情况，也可推及ValueChangeListener。</p><p><br /></p><p><br /></p><p>摘自<a href="http://blog.csdn.net/gengv/article/details/4211794">http://blog.csdn.net/gengv/article/details/4211794</a><br /></p> </div></div><img src ="http://www.blogjava.net/guangcaiwudong/aggbug/392878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guangcaiwudong/" target="_blank">Kevin_YK</a> 2012-12-12 15:52 <a href="http://www.blogjava.net/guangcaiwudong/articles/392878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Richfaces按钮事件执行的顺序</title><link>http://www.blogjava.net/guangcaiwudong/articles/392876.html</link><dc:creator>Kevin_YK</dc:creator><author>Kevin_YK</author><pubDate>Wed, 12 Dec 2012 07:46:00 GMT</pubDate><guid>http://www.blogjava.net/guangcaiwudong/articles/392876.html</guid><wfw:comment>http://www.blogjava.net/guangcaiwudong/comments/392876.html</wfw:comment><comments>http://www.blogjava.net/guangcaiwudong/articles/392876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guangcaiwudong/comments/commentRss/392876.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guangcaiwudong/services/trackbacks/392876.html</trackback:ping><description><![CDATA[<div><p>Richfaces按钮事件执行的顺序，如下这段标签代码：</p> <p>&nbsp;</p> <div id=""><div><div>Java代码 &nbsp;</div></div><ol start="1"><li><span>&lt;a4j:commandButton&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action=<span>"#{XXX.action4}"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;actionListener=<span>"#{XXX.action1}"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oncomplete=<span>""&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reRender=<span>""&nbsp;&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:actionListener&nbsp;binding=<span>"#{XXX.action2}"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;f:actionListener&nbsp;binding=<span>"#{XXX.action3}"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&lt;/a4j:commandButton&gt;&nbsp;&nbsp;</li></ol></div> <p>这个button是比较常见的，里面有action，actionListener，oncomplete，reRender一些事件，我们了解这些事件的执行顺序和机制有助于我们进一步的清楚用法，我简单的说下了：</p> <p>&nbsp;</p> <p>button上的actionListener事件先执行，但这里注入了f:actionListener ，先执行button自带的actionListener，然后按顺序执行注入f:actionListener</p> <p>actionListener执行完后，接下来执行action</p> <p>action执行完后，然后执行reRender事件（用来重渲染一些标签）</p> <p>reRender执行完后，最后执行oncomplete事件（JS事件）</p> <p>&nbsp;</p> <p>综上所述，我们执行的顺序是：action1，action2，action3，action4，reRender，oncomplete</p><p><br /></p><p>&nbsp;</p><div>摘自http://xiaojianbo.iteye.com/blog/1527258</div><p>&nbsp;</p></div><img src ="http://www.blogjava.net/guangcaiwudong/aggbug/392876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guangcaiwudong/" target="_blank">Kevin_YK</a> 2012-12-12 15:46 <a href="http://www.blogjava.net/guangcaiwudong/articles/392876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>