﻿<?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-大道自然-随笔分类-JSF 2</title><link>http://www.blogjava.net/iamlibo/category/44817.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 13 Jul 2012 18:30:23 GMT</lastBuildDate><pubDate>Fri, 13 Jul 2012 18:30:23 GMT</pubDate><ttl>60</ttl><item><title>JSF2 传参太爽了</title><link>http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 13 Jul 2012 11:42:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/383050.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/383050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/383050.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jsf 传参数主要有以下几种方式：As to the cause, the&nbsp;&lt;f:attribute&gt;&nbsp;is specific to the component itself (populated during view build time), not to the iterated row (populated during view render time)....&nbsp;&nbsp;<a href='http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html'>阅读全文</a><img src ="http://www.blogjava.net/iamlibo/aggbug/383050.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> 2012-07-13 19:42 <a href="http://www.blogjava.net/iamlibo/archive/2012/07/13/383050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsf 2 自定义转换器打包</title><link>http://www.blogjava.net/iamlibo/archive/2010/05/07/320311.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 07 May 2010 11:23:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/05/07/320311.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/320311.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/05/07/320311.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/320311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/320311.html</trackback:ping><description><![CDATA[<a href="http://www.blogjava.net/iamlibo/archive/2010/04/24/319265.html">jsf 2 自定义转换器</a>&nbsp; 在开发状态下运行正常（即没有将代码打包成jar包），打包后放到WEB-INF/lib目录下，当使用转换器时提示不能实例化转换器。查了一jsf 2 ri 源码，是在实例化是出现了一个空值，查了半天，涉及的代码太多。时间关系，只好不打包了。<br />
<br />
有知道的交流一下。<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/320311.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-05-07 19:23 <a href="http://www.blogjava.net/iamlibo/archive/2010/05/07/320311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转： JSF2中轻松使用ajax </title><link>http://www.blogjava.net/iamlibo/archive/2010/05/05/320143.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 05 May 2010 12:10:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/05/05/320143.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/320143.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/05/05/320143.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/320143.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/320143.html</trackback:ping><description><![CDATA[<h1>&nbsp;JSF2中轻松使用ajax&nbsp;<cite> </cite>
</h1>
http://blog.csdn.net/thinkhlin_down/archive/2010/04/15/5488370.aspx<br />
<br />
<script type="text/javascript">
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
if (text && text.length > 300) {
text = text + ""r"n"n本文来自CSDN博客，转载请标明出处：" + location.href;
clipboardData.setData("text", text);
}
}, 100);
}
}
</script>
<script type="text/javascript">                        function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }</script>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">1</span><span style="font-family: 宋体;">：使用</span><span style="font-family: Times New Roman;">JSF2</span><span style="font-family: 宋体;">提供的</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">的理由</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; js</span><span style="font-family: 宋体;">兼容性：写过</span><span style="font-family: Times New Roman;">web</span><span style="font-family: 宋体;">应用的朋友都知道，</span><span style="font-family: Times New Roman;">js</span><span style="font-family: 宋体;">在各个浏览器中的不兼容是出了名的，在</span><span style="font-family: Times New Roman;">IE</span><span style="font-family: 宋体;">上运行好好的放到</span><span style="font-family: Times New Roman;">firefox</span><span style="font-family: 宋体;">下可能没法正常运行，或者相反的情况在</span><span style="font-family: Times New Roman;">firefox</span><span style="font-family: 宋体;">下正常运行的代码在</span><span style="font-family: Times New Roman;">IE</span><span style="font-family: 宋体;">上无法运行，甚至在</span><span style="font-family: Times New Roman;">IE6</span><span style="font-family: 宋体;">下能正常运行的代码在</span><span style="font-family: Times New Roman;">IE8</span><span style="font-family: 宋体;">里面不能正常运行，但是</span><span style="font-family: Times New Roman;">JSF2.0</span><span style="font-family: 宋体;">中将所有的不一致都隐藏起来了，开发者或者使用者无需关心这些恼人的问题。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajax</span><span style="font-family: 宋体;">框架的选择：当前有许多流行的</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">框架，如</span><span style="font-family: Times New Roman;">jquery</span><span style="font-family: 宋体;">，</span><span style="font-family: Times New Roman;">json</span><span style="font-family: 宋体;">，</span><span style="font-family: Times New Roman;">dwr</span><span style="font-family: 宋体;">等等，但是这些都必须额外添加支持库而且有些必须进行繁杂的配置，对于注重应用的开发人员来说很不利（别说用那些很多配置的显示你很高手，那都是自我安慰的一种方式，谁不喜欢简单的事情！难不成你用这些理由跟你们老板理论去，那你就等着卷铺盖走人吧！），而</span><span style="font-family: Times New Roman;">JSF2</span><span style="font-family: 宋体;">是内置了</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">功能，能满足我们绝大部分的需求，所以可以大大的简化和加速我们项目的进度。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">2</span><span style="font-family: 宋体;">：最简单的</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">功能</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">如今流行的</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">框架非常多，比如</span><span style="font-family: Times New Roman;">jquery</span><span style="font-family: 宋体;">，</span><span style="font-family: Times New Roman;">dwr</span><span style="font-family: 宋体;">等之类的，但是这些</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">框架（或类似脚本库）都是单独提供的，而且使用起来还是相对麻烦，而</span><span style="font-family: Times New Roman;">JSF2</span><span style="font-family: 宋体;">提供的</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">功能实现非常简单，甚至一句</span><span style="font-family: Times New Roman;">js</span><span style="font-family: 宋体;">代码都不用写就可以完成页面的无刷新功能。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">以下是一个非常简单的一个使用</span><span style="font-family: Times New Roman;">JSF2</span><span style="font-family: 宋体;">标签并带有</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">功能的代码</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman; font-size: small;">&lt;h:commandButton action="#{testAjax.validateUser}"&gt;</span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;f:ajax render="id1"&gt;</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman; font-size: small;">&lt;/h:commandButton&gt;</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: small;"><span style="font-family: 宋体;">我们在上面的例子中并没有看到任何的</span><span style="font-family: Times New Roman;">js</span><span style="font-family: 宋体;">代码，其实</span><span style="font-family: Times New Roman;">JSF2</span><span style="font-family: 宋体;">标签帮我们封装好了所有的操作，在生成页面的时候会进行相应的处理，具体的属性介绍我们下面的内容会详细讲解。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">3</span><span style="font-family: 宋体;">：以上的例子只是一个非常简单的功能，能完成一些基本的</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">功能，我们现在编写一个相对完全一点的示例：</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman; font-size: small;">&lt;h:commandButton action="#{testAjax.validateUser}"&gt;</span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;f:ajax render="id1 id2" execute="id3 id4" event="blur" onevent="showFire" /&gt;</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman; font-size: small;">&lt;/h:commandButton&gt;</span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><span style="font-size: small;">属性说明：</span></span></p>
<p><span style="font-family: 宋体;">
<table style="border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-size: small;"><span style="font-family: 宋体;">属性名称</span></span></p>
            </td>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 366.7pt;" width="489">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-size: small;"><span style="font-family: 宋体;">属性说明</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-family: Times New Roman;"><span style="font-size: small;">render</span></span></p>
            </td>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 366.7pt;" width="489">
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">页面上需要刷新的元素的</span><span style="font-family: Times New Roman;">id</span><span style="font-family: 宋体;">，如果有多个可以用空格隔开，示例中就是有</span><span style="font-family: Times New Roman;">id1 id2</span><span style="font-family: 宋体;">，中间使用空格隔开，前提是我们的元素必须要有一个</span><span style="font-family: Times New Roman;">id</span><span style="font-family: 宋体;">属性，比如一个输入框</span><span style="font-family: Times New Roman;">&lt;input type="text" id="id1" value=""/&gt;</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-family: Times New Roman;"><span style="font-size: small;">execute</span></span></p>
            </td>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 366.7pt;" width="489">
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">需要提交给服务器端的参数的</span><span style="font-family: Times New Roman;">id</span><span style="font-family: 宋体;">，如果有多个用空格隔开，比如说更新</span><span style="font-family: Times New Roman;">id1</span><span style="font-family: 宋体;">时，需要传入一个输入框</span><span style="font-family: Times New Roman;">id</span><span style="font-family: 宋体;">为</span><span style="font-family: Times New Roman;">id3</span><span style="font-family: 宋体;">的元素，那么可以用</span><span style="font-family: Times New Roman;">execute="id3"</span><span style="font-family: 宋体;">，其实还可以使用</span><span style="font-family: Times New Roman;">@</span><span style="font-family: 宋体;">符号来操作，有</span><span style="font-family: Times New Roman;">@this</span><span style="font-family: 宋体;">表示当前元素；</span><span style="font-family: Times New Roman;">@form</span><span style="font-family: 宋体;">表示此元素所在表单（</span><span style="font-family: Times New Roman;">form</span><span style="font-family: 宋体;">）下的所有的元素；</span><span style="font-family: Times New Roman;">@none</span><span style="font-family: 宋体;">表示不提交任何元素；</span><span style="font-family: Times New Roman;">@all</span><span style="font-family: 宋体;">表示提交页面所有</span><span style="font-family: Times New Roman;">JSF</span><span style="font-family: 宋体;">的可提交的元素。</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-family: Times New Roman;"><span style="font-size: small;">event</span></span></p>
            </td>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 366.7pt;" width="489">
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">指</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件触发的条件，比如我们上一例子就是使用了</span><span style="font-family: Times New Roman;">event="blur",</span><span style="font-family: 宋体;">表示当</span><span style="font-family: Times New Roman;">blur</span><span style="font-family: 宋体;">事件发生时触发</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件</span><span style="font-family: Times New Roman;">(blur</span><span style="font-family: 宋体;">只是举例，可以使用的有</span><span><span style="font-family: Times New Roman;">action,
            blur, change, click, dblclick, focus, keydown, keypress, keyup,
            mousedown, mousemove, mouseout, mouseover, mouseup, select)</span></span><span style="font-family: 宋体;">，如果没有指定则使用默认的事件触发，默认的事件是</span><span style="font-family: Times New Roman;">action</span><span style="font-family: 宋体;">，</span><span style="font-family: Times New Roman;">action</span><span style="font-family: 宋体;">其实不是</span><span style="font-family: Times New Roman;">js</span><span style="font-family: 宋体;">中有的事件，是指任何方式触发调用，如点击也能触发</span><span style="font-family: Times New Roman;">action</span><span style="font-family: 宋体;">事件。</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79" valign="bottom">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-family: Times New Roman;"><span style="font-size: small;">onevent</span></span></p>
            </td>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 366.7pt;" width="489">
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">指</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件相应完成后执行的</span><span style="font-family: Times New Roman;">js</span><span style="font-family: 宋体;">函数，比如说我们上面示例代码有</span><span style="font-family: Times New Roman;">onevent="showFire"</span><span style="font-family: 宋体;">，这个函数带可以带至多一个参数，这个参数是</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">时间触发后返回的结果</span><span style="font-family: Times New Roman;">DOM</span><span style="font-family: 宋体;">对象（并不是我们调用</span><span style="font-family: Times New Roman;">java</span><span style="font-family: 宋体;">代码中的方法返回的参数），在</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件响应完成后即调用</span><span style="font-family: Times New Roman;">showFire</span><span style="font-family: 宋体;">这个函数，示例如下代码</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&lt;script type="text/javascript"&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function showFire() {</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("</span><span style="font-family: 宋体;">回调函数事件已经触发</span><span style="font-family: Times New Roman;">");</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&lt;/script&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&lt;h:form&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:outputText id="id1" value="#{ajaxTest.number}"/&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:commandButton value="</span><span style="font-family: 宋体;">数字增加</span><span style="font-family: Times New Roman;">" action="#{testAjax.count}"&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;f:ajax render="number" onevent="showFire"/&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:commandButton&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&lt;/h:form&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">Java</span><span style="font-family: 宋体;">代码</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">@ManagedBean</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">@ViewScoped</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">public class AjaxTest implements Serializable {</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; </span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; private int number;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; public void count() {</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number++;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; }</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //getter and setter</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">}</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79">
            <p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-family: Times New Roman;"><span style="font-size: small;">listener</span></span></p>
            </td>
            <td style="padding: 0cm 5.4pt; background-color: transparent; width: 366.7pt;" width="489">
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">此属性是指</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件触发后调用的</span><span style="font-family: Times New Roman;">managedbean</span><span style="font-family: 宋体;">的方法，其实作用很明显，比如说我们这里不用按钮之类的标签，只是需要当我们输入某个数据的时候触发一个</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件，这个属性就显得很重要了。示例如下：</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">JSF</span><span style="font-family: 宋体;">页面代码</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; &lt;h:head&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;JSF2.0 ajax</span><span style="font-family: 宋体;">测试</span><span style="font-family: Times New Roman;">&lt;/title&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript"&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var temp = 0;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function showFire() {</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("</span><span style="font-family: 宋体;">响应函数！</span><span style="font-family: Times New Roman;">");</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; &lt;/h:head&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; &lt;h:body&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:form&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:outputText id="id1" value="#{ajaxTest.number}"/&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:inputText&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;f:ajax render="id1" event="keyup" onevent="showFire" listener="#{ajaxTest.count}"/&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:inputText&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:form&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; &lt;/h:body&gt;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">Java</span><span style="font-family: 宋体;">代码</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">@ManagedBean</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">@ViewScoped</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">public class AjaxTest implements Serializable {</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; </span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; private int number;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; public void count() {</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number++;</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp; }</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //getter and setter</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman;"><span style="font-size: small;">}</span></span></p>
            <p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: Times New Roman;">listener</span><span style="font-family: 宋体;">属性的代码作用就是调用</span><span style="font-family: Times New Roman;">AjaxTest</span><span style="font-family: 宋体;">类中的</span><span style="font-family: Times New Roman;">count</span><span style="font-family: 宋体;">方法，使数字加一，我们也可以延伸一下作用，比如说注册信息的时候，输入的用户名检查是否重复，当我们输入的时候就实时检测即可。</span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">注：此回调函数</span><span style="font-family: Times New Roman;">showFire</span><span style="font-family: 宋体;">会被执行三次，但是通过监控软件</span><span style="font-family: Times New Roman;">ajax</span><span style="font-family: 宋体;">事件触发后只提交了一次数据请求，所以具体的问题出现在客户端，由于资料相对较少暂时不做解释。</span></span></p>
<img src ="http://www.blogjava.net/iamlibo/aggbug/320143.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-05-05 20:10 <a href="http://www.blogjava.net/iamlibo/archive/2010/05/05/320143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF2.0 Converter</title><link>http://www.blogjava.net/iamlibo/archive/2010/04/24/319265.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 24 Apr 2010 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/04/24/319265.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/319265.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/04/24/319265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/319265.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/319265.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]-->
<p>JSF2.0 <span style="font-family: 宋体;">日期转换</span></p>
<p>Jsf RI <span style="font-family: 宋体;">包提供默认的日期转换器</span> &lt;f:<span style="font-family: &quot;Verdana&quot;,&quot;sans-serif&quot;; color: #333333;">
convertDateTime /&gt; </span><span style="font-family: 宋体; color: #333333;">但在使用时发现从数据读出数据显示的时候会少一天，比如：数据库中的日期是</span><span style="font-family: &quot;Verdana&quot;,&quot;sans-serif&quot;; color: #333333;">2010-4-24 </span><span style="font-family: 宋体; color: #333333;">在经过转换器前还是这个日期，但转换后显示到界面上时就会显示</span><span style="font-family: &quot;Verdana&quot;,&quot;sans-serif&quot;; color: #333333;">2010-4-23 </span><span style="font-family: 宋体; color: #333333;">，无论设置格式还是时区都无效。</span></p>
<p><span style="font-family: 宋体; color: #333333;">既然不好用就自定义一个转换器，好在</span><span style="font-family: &quot;Verdana&quot;,&quot;sans-serif&quot;; color: #333333;">JSF2.0 </span><span style="font-family: 宋体; color: #333333;">自定义转换器也非常的方便了</span></p>
<p><span style="font-family: 宋体; color: #333333;">整个代码如下：</span></p>
<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;">import</span><span style="color: #000000;">&nbsp;java.text.ParseException;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Date;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.faces.component.UIComponent;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.faces.context.FacesContext;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.faces.convert.Converter;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.faces.convert.FacesConverter;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;cn.xiangyunsoft.utils.DateUtils;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;cn.xiangyunsoft.utils.StringUtils;<br />
<br />
@FacesConverter(value&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">dateConverter</span><span style="color: #000000;">"</span><span style="color: #000000;">)<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;ConvertDate&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Converter&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;getAsObject(FacesContext&nbsp;arg0,&nbsp;UIComponent&nbsp;arg1,&nbsp;String&nbsp;arg2)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(StringUtils.isNotEmpty(arg2))&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;DateUtils.parseDate(arg2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(ParseException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getAsString(FacesContext&nbsp;arg0,&nbsp;UIComponent&nbsp;arg1,&nbsp;Object&nbsp;arg2)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(arg2</span><span style="color: #000000;">!=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;DateUtils.format((Date)&nbsp;arg2,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">yyyy-MM-dd</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
</span></div>
<p>其中DateUtils 类就是常用的日期和字符串的转换方法。</p>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: 宋体;">在</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">XHTML </span><span style="font-size: 10.5pt; font-family: 宋体;">使用时如下：</span></p>
<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: #800000;">h:inputText&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="#{cc.attrs.id}"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="#{cc.attrs.value}"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onkeydown</span><span style="color: #0000ff;">="ctlent(event);"</span><span style="color: #ff0000;">&nbsp;styleClass</span><span style="color: #0000ff;">="#{cc.attrs.styleClass}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&lt;f:convertDateTime&nbsp;pattern="yyyy-MM-dd"&nbsp;locale="zh-CN"/&gt;</span><span style="color: #008000;">--&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;">f:converter&nbsp;</span><span style="color: #ff0000;">converterId</span><span style="color: #0000ff;">="dateConverter"</span><span style="color: #ff0000;">&nbsp;</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;">h:inputText</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<p><br />
</p>
<p><span style="font-family: 宋体; color: #333333;"><br />
</span></p>
<img src ="http://www.blogjava.net/iamlibo/aggbug/319265.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-04-24 15:05 <a href="http://www.blogjava.net/iamlibo/archive/2010/04/24/319265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF2.0 与Spring 3.0 集成</title><link>http://www.blogjava.net/iamlibo/archive/2010/04/24/319264.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 24 Apr 2010 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/04/24/319264.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/319264.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/04/24/319264.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/319264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/319264.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><![endif]-->
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]-->
<p>JSF2.0 <span style="font-family: 宋体;">与Spring 3.0 </span><span style="font-family: 宋体;">集成</span></p>
<p><span style="font-family: 宋体;">同以前的</span>JSF1.2<span style="font-family: 宋体;">与</span>Spring2.5<span style="font-family: 宋体;">集成类似，只是有一些类名的变化。</span></p>
<p><span style="font-family: 宋体;">web.xml 代码如下：</span></p>
<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: #800000;">context-param</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;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">contextConfigLocation</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</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;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">WEB-INF/applicationContext.xml</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</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;">context-param</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;">listener</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;">listener-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">com.sun.faces.config.ConfigureListener</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">listener-class</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;">listener</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;">listener</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;">listener-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;org.springframework.web.context.ContextLoaderListener<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">listener-class</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;">listener</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;">listener</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;">listener-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.context.request.RequestContextListener</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">listener-class</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;">listener</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;">servlet</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;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Faces&nbsp;Servlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</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;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">javax.faces.webapp.FacesServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-class</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;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">load-on-startup</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;">servlet</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;">servlet-mapping</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;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Faces&nbsp;Servlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</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;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">*.xhtml</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">url-pattern</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;">servlet-mapping</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;">servlet-mapping</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;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Faces&nbsp;Servlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</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;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">*.jsf</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">url-pattern</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;">servlet-mapping</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;">context-param</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;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">javax.faces.PROJECT_STAGE</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</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;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Development</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</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;">context-param</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;">welcome-file-list</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;">welcome-file</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">index.html</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">welcome-file</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;">welcome-file-list</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #000000;"><br />
</span></div>
<p><br />
</p>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><![endif]-->
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000e1;">Faces-config.xml</span><span style="font-size: 10pt; font-family: 宋体; color: #0000e1;">中加入：</span></p>
</p>
<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: #800000;">el-resolver</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">org.springframework.web.jsf.el.SpringBeanFacesELResolver</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">el-resolver</span><span style="color: #0000ff;">&gt;</span></div>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><![endif]-->
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">JSF1.2</span><span style="font-size: 10.5pt; font-family: 宋体;">和</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">1.2</span><span style="font-size: 10.5pt; font-family: 宋体;">以前是加入</span></p>
<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: #800000;">variable-resolver</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">org.springframework.web.jsf.DelegatingVariableResolver</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">variable-resolver</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><![endif]-->
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #228820;">Spring </span><span style="font-size: 10pt; font-family: 宋体; color: #228820;">的配置文件就正常配置就可以了。</span></p>
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #228820;">ApplicationContext.xml</span><span style="font-size: 10pt; font-family: 宋体; color: #228820;">：</span></p>
<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;">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">beans&nbsp;</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.springframework.org/schema/beans"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff;">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000;">&nbsp;xmlns:aop</span><span style="color: #0000ff;">="http://www.springframework.org/schema/aop"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:tx</span><span style="color: #0000ff;">="http://www.springframework.org/schema/tx"</span><span style="color: #ff0000;">&nbsp;xmlns:context</span><span style="color: #0000ff;">="http://www.springframework.org/schema/context"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff;">="<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-3.0.xsd<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/tx&nbsp;http://www.springframework.org/schema/tx/spring-tx-3.0.xsd<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/aop&nbsp;http://www.springframework.org/schema/aop/spring-aop-3.0.xsd<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context&nbsp;http://www.springframework.org/schema/context/spring-context-3.0.xsd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id="propertyConfigurer"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="location"&nbsp;value="WEB-INF/jdbc.properties"&nbsp;/&gt;&nbsp;&lt;/bean&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;hibernate&nbsp;sessionFactory&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">context:annotation-config</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;">context:component-scan&nbsp;</span><span style="color: #ff0000;">base-package</span><span style="color: #0000ff;">="cn.xiangyunsoft"</span><span style="color: #ff0000;">&nbsp;</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;">bean&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="sessionFactory"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff;">="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"</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;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="hibernateProperties"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="classpath:hibernate.properties"</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;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="configLocations"</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;">list</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: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;使用hibernate.cfg.xml配置文件&nbsp;</span><span style="color: #008000;">--&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;">value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">classpath:hibernate.cfg.xml<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;">value</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;">list</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;">property</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;">bean</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;配置事务管理&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;事务通知类&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id="profiler"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class="cn.xiangyunsoft.business.service.SimpleProfiler"&gt;&nbsp;order<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;值可以决定通知的先后顺序&nbsp;,与后面的order的值的大小，决定了是先通知再执行，还是先执行再通知&nbsp;&lt;property<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name="order"&nbsp;value="2"&nbsp;/&gt;&nbsp;&lt;/bean&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="transactionManager"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff;">="org.springframework.orm.hibernate3.HibernateTransactionManager"</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;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="sessionFactory"</span><span style="color: #ff0000;">&nbsp;ref</span><span style="color: #0000ff;">="sessionFactory"</span><span style="color: #ff0000;">&nbsp;</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;">bean</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;">aop:config</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;此处的IService&nbsp;是表示对所有实现IService接口的类管理事务&nbsp;</span><span style="color: #008000;">--&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;">aop:advisor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">pointcut</span><span style="color: #0000ff;">="execution(*&nbsp;cn.xiangyunsoft.*.service..*ServiceImpl.*(..))"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;advice-ref</span><span style="color: #0000ff;">="txAdvice"</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;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;加入之后事务不起作用&gt;&nbsp;&lt;aop:aspect&nbsp;id="profilingAspect"&nbsp;ref="profiler"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;aop:pointcut&nbsp;id="serviceMethodWithReturnValue"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expression="execution(*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cn.xiangyunsoft.*.service..*ServiceImpl.*(..))"&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;aop:after-throwing&nbsp;method="profile"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pointcut-ref="serviceMethodWithReturnValue"&nbsp;/&gt;&nbsp;&lt;/aop:aspect<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">aop:config</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;">tx:advice&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="txAdvice"</span><span style="color: #ff0000;">&nbsp;transaction-manager</span><span style="color: #0000ff;">="transactionManager"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;the&nbsp;transactional&nbsp;semantics<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #008000;">--&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;">tx:attributes</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: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;以get、find、load开头的方法是只读事务&nbsp;</span><span style="color: #008000;">--&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;">tx:method&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="*"</span><span style="color: #ff0000;">&nbsp;read-only</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;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&lt;tx:method&nbsp;name="find*"&nbsp;read-only="true"&nbsp;/&gt;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&lt;tx:method&nbsp;name="load*"&nbsp;read-only="true"&nbsp;/&gt;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;其他方法是默认,事务隔离级别为：保证一个事务修改的数据提交后才能被另外一个事务读取&nbsp;</span><span style="color: #008000;">--&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;">tx:method&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="save*"</span><span style="color: #ff0000;">&nbsp;isolation</span><span style="color: #0000ff;">="REPEATABLE_READ"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;propagation</span><span style="color: #0000ff;">="REQUIRED"</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;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">tx:method&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="delete*"</span><span style="color: #ff0000;">&nbsp;isolation</span><span style="color: #0000ff;">="REPEATABLE_READ"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;propagation</span><span style="color: #0000ff;">="REQUIRED"</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;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">tx:attributes</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;">tx:advice</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">beans</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<p><br />
</p>
<p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><![endif]-->
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{
mso-bidi-font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.5pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10pt; font-family: 宋体; color: #0000e1;">一个注入Spring bean 的 </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000e1;">JSF bean 代码如下：<br />
</span></p>
<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: #000000;">@ManagedBean(name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ClassItemBean.NAME)<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;ClassItemBean&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;NAME&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">classItemBean</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*在spring&nbsp;中配置的service.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;@ManagedProperty(name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">classItemService</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;value&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">#{classItemService}</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;ClassItemService&nbsp;classItemService;<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;setClassItemService(ClassItemService&nbsp;classItemService)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.classItemService&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;classItemService;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;hello()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">hello.</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;classItemService);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;obj&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;classItemService.get(ClassItem.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">01</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">obj&nbsp;=&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;obj);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<p><br />
</p>
<p>这样集成就完毕了。很简单，很强大。</p>
<p><br />
</p>
<p><br />
</p>
<p><span style="font-family: 宋体;"><br />
</span></p>
<img src ="http://www.blogjava.net/iamlibo/aggbug/319264.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-04-24 15:03 <a href="http://www.blogjava.net/iamlibo/archive/2010/04/24/319264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF 2  Navigation</title><link>http://www.blogjava.net/iamlibo/archive/2010/04/24/319263.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 24 Apr 2010 06:53:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2010/04/24/319263.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/319263.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2010/04/24/319263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/319263.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/319263.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="themeData" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Clibo%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math" />
<m:brkBin m:val="before" />
<m:brkBinSub m:val="--" />
<m:smallFrac m:val="off" />
<m:dispDef/>
<m:lMargin m:val="0" />
<m:rMargin m:val="0" />
<m:defJc m:val="centerGroup" />
<m:wrapIndent m:val="1440" />
<m:intLim m:val="subSup" />
<m:naryLim m:val="undOvr" />
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267">
<w:LsdException locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal" />
<w:LsdException locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 2" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 3" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 4" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 5" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 6" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 7" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 8" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 9" />
<w:LsdException locked="false" priority="39" name="toc 1" />
<w:LsdException locked="false" priority="39" name="toc 2" />
<w:LsdException locked="false" priority="39" name="toc 3" />
<w:LsdException locked="false" priority="39" name="toc 4" />
<w:LsdException locked="false" priority="39" name="toc 5" />
<w:LsdException locked="false" priority="39" name="toc 6" />
<w:LsdException locked="false" priority="39" name="toc 7" />
<w:LsdException locked="false" priority="39" name="toc 8" />
<w:LsdException locked="false" priority="39" name="toc 9" />
<w:LsdException locked="false" priority="35" qformat="true" name="caption" />
<w:LsdException locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title" />
<w:LsdException locked="false" priority="1" name="Default Paragraph Font" />
<w:LsdException locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle" />
<w:LsdException locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong" />
<w:LsdException locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis" />
<w:LsdException locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid" />
<w:LsdException locked="false" unhidewhenused="false" name="Placeholder Text" />
<w:LsdException locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1" />
<w:LsdException locked="false" unhidewhenused="false" name="Revision" />
<w:LsdException locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph" />
<w:LsdException locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote" />
<w:LsdException locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6" />
<w:LsdException locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis" />
<w:LsdException locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis" />
<w:LsdException locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference" />
<w:LsdException locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference" />
<w:LsdException locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title" />
<w:LsdException locked="false" priority="37" name="Bibliography" />
<w:LsdException locked="false" priority="39" qformat="true" name="TOC Heading" />
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:1;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:0 0 0 0 0 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-520092929 1073786111 9 0 415 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
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;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
pre
{mso-style-noshow:yes;
mso-style-priority:99;
mso-style-link:"HTML 预设格式 Char";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;}
span.HTMLChar
{mso-style-name:"HTML 预设格式 Char";
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"HTML 预设格式";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:宋体;
mso-ascii-font-family:宋体;
mso-fareast-font-family:宋体;
mso-hansi-font-family:宋体;
mso-bidi-font-family:宋体;
mso-font-kerning:0pt;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
</style>
<![endif]-->
<p class="MsoNormal"><span lang="EN-US">JSF 2.0 <a name="listing8"><strong>Navigation</strong></a></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">在</span><span lang="EN-US">JSF 1.X </span><span style="font-family: 宋体;">中使用导航需要在</span><span lang="EN-US">faces-config.xml </span><span style="font-family: 宋体;">加入这样的代码：</span></p>
<span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<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: #800000;">navigation-rule</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">navigation-case</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;">from-view-id</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/pages/login.xhtml</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">from-view-id</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;">outcome</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">main</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">outcome</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;">to-view-id</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/pages/main.xhtml</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">to-view-id</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">navigation-case</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">navigation-rule</span><span style="color: #0000ff;">&gt;</span></div>
<p class="MsoNormal"><span style="font-family: 宋体;">在</span><span lang="EN-US">JSF 2 </span><span style="font-family: 宋体;">中完全可以不用配置。</span></p>
<span lang="EN-US"><o:p></o:p></span><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: #800000;">h:commandButton&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="loginButton"</span><span style="color: #ff0000;">&nbsp;<br />
&nbsp;&nbsp;value</span><span style="color: #0000ff;">="#{msgs.loginButtonText}"</span><span style="color: #ff0000;">&nbsp;action</span><span style="color: #0000ff;">="main"</span><span style="color: #0000ff;">/&gt;</span></div>
<br />
点击按钮会转到<span lang="EN-US">main.xhtml</span>，<span lang="EN-US">JSF </span>会在当前目录中查找<span lang="EN-US">main.xhtml</span>。
<pre>也可以使用绝对地址：</pre>
<pre><a name="OLE_LINK1"></a></pre>
<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: #800000;">h:commandButton&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="loginButton"</span><span style="color: #ff0000;"><br />
<br />
&nbsp;&nbsp;value</span><span style="color: #0000ff;">="#{msgs.loginButtonText}"</span><span style="color: #ff0000;"><br />
<br />
&nbsp;&nbsp;action</span><span style="color: #0000ff;">="/pages/main"</span><span style="color: #0000ff;">/&gt;</span></div>
<pre></pre>
<pre><span lang="EN-US"><o:p>&nbsp;</o:p></span></pre>
<p class="MsoNormal"><span style="font-family: 宋体;">默认情况下</span><span lang="EN-US">JSF </span><span style="font-family: 宋体;">会从一页面</span><span lang="EN-US">forwards</span><span style="font-family: 宋体;">到另一个页面。也可以使用</span><span lang="EN-US">redirect</span><span style="font-family: 宋体;">转到另一个页面。</span></p>
<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: #800000;">h:commandButton&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="loginButton"</span><span style="color: #ff0000;"><br />
<br />
&nbsp;&nbsp;value</span><span style="color: #0000ff;">="#{msgs.loginButtonText}"</span><span style="color: #ff0000;"><br />
<br />
&nbsp;&nbsp;action</span><span style="color: #0000ff;">="/pages/main?faces-redirect=true"</span><span style="color: #0000ff;">/&gt;</span></div>
<pre><span lang="EN-US"><br />
相比 JSF1.2 要简单得多！<br />
<br />
</span></pre>
<img src ="http://www.blogjava.net/iamlibo/aggbug/319263.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-04-24 14:53 <a href="http://www.blogjava.net/iamlibo/archive/2010/04/24/319263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>