﻿<?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-Noah-文章分类-JSF</title><link>http://www.blogjava.net/Noah/category/54627.html</link><description>&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri" lang="ZH-CN"&gt;不是经典我不发&lt;/span&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 26 Nov 2014 22:06:13 GMT</lastBuildDate><pubDate>Wed, 26 Nov 2014 22:06:13 GMT</pubDate><ttl>60</ttl><item><title>JSF学习日志</title><link>http://www.blogjava.net/Noah/articles/420611.html</link><dc:creator>眼镜蛇</dc:creator><author>眼镜蛇</author><pubDate>Wed, 26 Nov 2014 05:38:00 GMT</pubDate><guid>http://www.blogjava.net/Noah/articles/420611.html</guid><wfw:comment>http://www.blogjava.net/Noah/comments/420611.html</wfw:comment><comments>http://www.blogjava.net/Noah/articles/420611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Noah/comments/commentRss/420611.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Noah/services/trackbacks/420611.html</trackback:ping><description><![CDATA[1.Bean中这样写，页面上直接调用<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->@Named("bean1")&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;or&nbsp;@ManagedBean(name="bean1")&nbsp;or&nbsp;不指定名字，默认Bean的名，sampleBean</span><span style="color: #008000; "><br />
</span>@SessionScoped<br />
<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;SampleBean&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;getLuckyNumber()&nbsp;{&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;setLuckyNumber(<span style="color: #0000FF; ">int</span>&nbsp;value)&nbsp;{&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;login()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;()&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"success";&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"error";<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</div>
页面这样写，直接调相应的方法<br />
<span style="background-color: #eeeeee; font-size: 13px;">&lt;h:commandButton value="press me" action="#{bean1.login}"/&gt;</span><br />
2.超链接<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<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:link&nbsp;</span><span style="color: #FF0000; ">outcome</span><span style="color: #0000FF; ">="#{custVM.gotoDetail}"</span><span style="color: #FF0000; ">&nbsp;includeViewParams</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;target</span><span style="color: #0000FF; ">="_blank"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="scmNo"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="#{warr.project_no}"</span><span style="color: #0000FF; ">/&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="custNo"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="#{warr.cust_no}"</span><span style="color: #0000FF; ">/&gt;</span>&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="custName"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="#{warr.cust_name}"</span><span style="color: #0000FF; ">/&gt;</span>&nbsp;&nbsp;<br />&nbsp; &nbsp; &nbsp; <span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">h:outputText&nbsp;</span><span style="color: #FF0000; ">value</span><span style="color: #0000FF; ">="#{warr.accrued_amt}"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:convertNumber&nbsp;</span><span style="color: #FF0000; ">currencySymbol</span><span style="color: #0000FF; ">="$"</span><span style="color: #FF0000; ">&nbsp;type</span><span style="color: #0000FF; ">="currency"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">h:outputText</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">h:link</span><span style="color: #0000ff;">&gt;</span></div>在目标页面写下面这个，这样就可以传过来了<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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; ">f:metadata</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:viewParam&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="scmNo"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="#{custVM.scmNo}"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:viewParam&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="custNo"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="#{custVM.custNo}"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:viewParam&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="custName"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="#{custVM.custName}"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">f:metadata</span><span style="color: #0000FF; ">&gt;</span></div>3.下拉菜单写法：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">private</span>&nbsp;List&lt;SelectItem&gt;&nbsp;monthItems;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">它有自己的SelectItem&nbsp;类，用来存键值对。</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@PostConstruct<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;init()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;now&nbsp;=&nbsp;Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date&nbsp;=&nbsp;now.getTime();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;monthItems&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;ArrayList&lt;SelectItem&gt;();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Date&gt;&nbsp;monthList&nbsp;=&nbsp;amoritizateService.getMonthList();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(Date&nbsp;month:monthList){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;monthItems.add(<span style="color: #0000FF; ">new</span>&nbsp;SelectItem(month,&nbsp;DateUtil.format(month,&nbsp;"yyyy&nbsp;-&nbsp;MM")));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(Exception&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOG.error("ERROR!",e);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</div>页面可以直接这样写：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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; ">p:selectOneMenu&nbsp;</span><span style="color: #FF0000; ">value</span><span style="color: #0000FF; ">="#{amoritizateVM.date}"</span><span style="color: #FF0000; ">&nbsp;converter</span><span style="color: #0000FF; ">="monthItemConverter"</span><span style="color: #FF0000; ">&nbsp;style</span><span style="color: #0000FF; ">="width:145px"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">f:selectItems&nbsp;</span><span style="color: #FF0000; ">value</span><span style="color: #0000FF; ">="#{amoritizateVM.monthItems}"</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">f:selectItems</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">p:selectOneMenu</span><span style="color: #0000FF; ">&gt;</span></div>这里面用到了另外一个知识点Converter,用来转换类别，比如这里是用来Date和String的互转，所以要写上这个类<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />只要实现它的接口，它会自动完成转换，还是很方便的<br /></span><span style="color: #008000; ">*/</span><br />@FacesConverter("monthItemConverter")<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MonthItemConverter&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;Converter&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Logger&nbsp;LOG&nbsp;=&nbsp;LoggerFactory.getLogger(MonthItemConverter.<span style="color: #0000FF; ">class</span>);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&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 style="color: #0000FF; ">return</span>&nbsp;DateUtil.parseDate(arg2);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&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 style="color: #0000FF; ">return</span>&nbsp;DateUtil.format((Date)arg2);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><br />4.表单提交的话，用这个<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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; ">p:commandButton&nbsp;</span><span style="color: #FF0000; ">value</span><span style="color: #0000FF; ">="Query"</span><span style="color: #FF0000; ">&nbsp;update</span><span style="color: #0000FF; ">="dataForm"</span><span style="color: #0000FF; ">/&gt;</span></div>这里面的update要对应这个页面里的form的id<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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:form&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="dataForm"</span><span style="color: #0000FF; ">&gt;</span></div><img src ="http://www.blogjava.net/Noah/aggbug/420611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Noah/" target="_blank">眼镜蛇</a> 2014-11-26 13:38 <a href="http://www.blogjava.net/Noah/articles/420611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>