浠ュ墠浣跨敤facelets鍙槸瀹氫箟涓€涓晫闈㈢殑妯℃澘錛屽茍涓嶆病鏈夋繁鍏ュ畠鐨勮嚜瀹氫箟緇勪歡鏂歸潰鐨勫唴瀹癸紝鍏跺疄瀹冪殑鑷畾涔夌粍浠朵篃灝辨槸瀹氫箟涓€涓猼ag錛岀劧鍚庡湪xhtml涓紩鍏ヨ繖涓猼ag錛屼絾榪欒姣旀櫘閫氱殑JSP鏂瑰紡鐨則ag鏂逛究澶氫簡(jiǎn)銆?/p>
瑕佹兂寮曠敤鑷畾涔夌殑tag瑕佸湪web.xml涓姞鍏ヤ笅闈唬鐮?鍓嶆彁鏄竴瀹氶厤緗ソ鍏朵粬鐨刦acelets鍐呭)
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>
/WEB-INF/tld/xiangyun.taglib.xml
</param-value>
</context-param>
xiangyun.taglib.xml鏂囦歡鐨勫唴瀹瑰涓嬶細(xì)
<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"
鍦ㄨ繖閲屽紩鐢ㄤ簡(jiǎn)涓€涓猚omponent.jspx鏂囦歡錛岃繖涓枃浠跺氨鏄竴涓垨涓€緇勬兂鏀懼湪涓€鍧楀綋鍋氫竴涓粍浠朵嬌鐢ㄧ殑鍐呭錛屽拰鍏朵粬鐨刯spx鏂囦歡鐨勫啓娉曚竴鏍楓€傚唴瀹瑰涓嬶細(xì)
<ui:composition xmlns:ui="<ice:selectInputDate id="inputDate" popupDateFormat="MM/dd/yyyy"
value="#{inputDate}" renderAsPopup="true"
styleClass="iceSelInpDateInput" onkeydown="ctlent(event);"
rendered="true">
</ice:selectInputDate>
<h:outputText value="#{inputDate}"
rendered="true" styleClass="printText">
<f:convertDateTime dateStyle="long" type="date" timeZone="GMT+8"
locale="cn" />
</h:outputText>
</ui:composition>
鍙渶瑕佹敞鎰?lt;ui:composition>鏍囩鍜屽紩鍏ョ殑鍛藉悕絀洪棿灝辮錛屾爣絳鵑噷闈㈢殑鍐呭灝辯湅浣犺瀹屾垚鐨勫姛鑳戒簡(jiǎn)銆傚湪榪欓噷鎴戜嬌鐢ㄤ簡(jiǎn)ICEfaces鐨勬棩鏈熺粍浠訛紝鍙互鏇挎崲鎴怞SF鏀妧鐨勪換浣曚笢瑗褲€?/p>
鎺ヤ笅鏉ュ氨鏄浣跨敤浜?jiǎn)銆?/p>
<html xmlns="<ui:composition template="/pages/layout/layout.jspx">
<ui:define name="content">
<h:form id="testForm">
<ald:echo inputDate="#{testBean.date}"/>
</h:form>
</ui:define>
</ui:composition>
</html>
榪欓噷闇€瑕佸紩鍏ュ懡鍚嶇┖闂達(dá)紝瀹氫箟鍓嶇紑涓篴ld錛?/p>
<ald:echo>榪欎釜鏍囩鍚嶅悓xiangyun.taglib.xml涓0鏄庣殑瑕佷竴鑷達(dá)紝inputDate鏄湪瀹氫箟緇勪歡component.jspx涓0鏄庣殑#{inputDate}錛屽畠鍙互鎺ユ敹EL琛ㄨ揪寮忋€?/p>
榪欐牱鎴戜滑灝卞彲浠ユ妸澶х殑澶嶆潅鐨勯〉闈紝鍒嗘垚鍙互閲嶇敤鐨勭粍浠朵簡(jiǎn)銆?/p>
鏈夐棶棰樺彲浠ュ拰鎴戣仈緋伙細(xì)wfn_libo@163.com
涔熷彲浠ュ弬鑰?a >https://facelets.dev.java.net/nonav/docs/dev/docbook.html#gettingstarted-bean
鍏堢湅浠g爜:
<ice:panelPopup id="affirmDel" rendered="true" visible="#{purchasePlanBean.confirmDel}" modal="true"
style="z-index:1001; width: 350px; height: 200px; top:25%; left:25%;">
<f:facet name="header">
<ice:outputText styleClass="popupTitle" value="#{resource.confirm_title }" />
</f:facet>
<f:facet name="body">
榪欓噷鏄痓ody鐨勫唴瀹?/p>
</f:facet>
</ice:panelPopup>
visible灞炴€?鏄〃紺轟粈涔堟椂鍊欐樉紺鴻瀵硅瘽妗?涓€鑸槸bean涓殑涓€涓猙oolean鍙橀噺鐨勫€鹼紝鐒跺悗閫氳繃鍏朵粬鎸夐挳鐨勫姩浣滄敼鍙樿繖涓彉閲忕殑鍊兼潵鏄劇ず瀵硅瘽妗嗐€?/p>
modal灞炴€э細(xì)琛ㄧず瀵硅瘽妗嗘槸鍚︽ā寮忔樉紺恒€?/p>
<f:facet name="header"></f:facet>涓殑鍐呭鏄璇濇鐨勬爣棰?/p>
<f:facet name="body"></f:facet>涓殑鍐呭鏄璇濇鐨勬樉紺哄唴瀹廣€傚彲浠ヤ負(fù)JSF鍏佽鐨勪換浣曞唴瀹廣€?/p>
濡傛灉瀵硅瘽鐨刡ody鐨勫唴瀹歸渶瑕佷竴涓猣orm錛岃繖鏃跺簲璇ユ妸涓€涓猣orm鏍囩鏀懼埌body鍐呴儴銆傝€屼笉鏄斁鍒?lt;ice:panelPopup>榪欎釜鏍囩鐨勫閮ㄣ€傚鏋滄斁鍒板閮ㄥ湪鏈夊灝戜釜form 鐨勬儏鍐典笅浼?xì)鍑虹幇瀵硅瘽妗嗛兘琚伄鐩栬典h潵鐨勬儏鍐碉紝瀵艱嚧欏甸潰涓嶈兘浣跨敤浜?jiǎn)銆?/p>
鏈夊涓嬪姛鑳?
1銆佹暟鎹鑳藉涓巄ean鑱旂郴璧鋒潵,鍥犱負(fù)鑿滃崟鏄姩鎬佺殑浠庢暟鎹簱閲屽彇鍑烘潵鎴栧姩鎬佺敓鎴愮殑錛?/p>
2銆佽鏃犻檺綰ф鐨勶紙鍏跺疄鏈夌偣鍙樻€侊紝閭f湁閭d箞灞傛鐨勮彍鍗曪級(jí)錛?/p>
3銆佽鏄疍IV+CSS鐨勶紝涓嶈table鐨勶紙榪欎箞澶氬ぇ鐨勩€佺煡鍚嶇殑JSF緇勪歡涓轟粈涔堥兘鏄痶able甯冨眬鍛紵闅鵑亾浠栦滑鍜屾垜涓€鏍蜂笉浼?xì)鐢―IV錛焇_^)
...
鍦ㄧ綉涓婁竴鎵撅紝鏈変竴涓狣IV+CSS鐨則ree緇勪歡鍑虹幇浜?jiǎn)銆傚湪 http://cnlei.iecn.net/
涓嬫潵婧愮爜涓€鐪嬪緢娓呮櫚銆傝繛鎴戣繖涓嶆噦CSS鐨勪篃鐪嬪緱鏄庣櫧浜?jiǎn)涓€澶у崐銆傚喅瀹氬氨瀵瑰畠榪涜鏀歸€犮€傜敓鎴怞SF鐨勭粍浠躲€?/p>
鍦ㄥ紑鍙戠殑榪囩▼涓湁涓€浜涜璁板綍鐨勶細(xì)
1銆丣SF1.2鐨勭粍浠跺紑鍙戝拰JSF1.1鏈夌殑寰堝ぇ鐨勪笉鍚屻€傚挨鍏舵槸EL琛ㄨ揪寮忋€傝€屼笖鏄痚xtends鐨勫熀綾諱篃涓嶅悓銆?/p>
JSF1.2涓殑TagLib瑕佺戶鎵縥avax.faces.webapp.UIComponentELTag銆?/p>
2銆乀agLib鎺ュ彈鐨勫睘鎬у彧鑳芥槸ValueExpression綾誨瀷銆傚鏋滈渶瑕佺敤瀛楃鍨嬨€傞渶瑕佸啀榪涜澶勭悊銆備笉璞SF1.1涓湁鏂規(guī)硶鍒ゆ柇鏄〃杈懼紡榪樻槸鍊箋€?/p>
鎺ュ彈琛ㄨ揪鐨勫€鹼紝騫剁粰緇勪歡璧嬪€鹼細(xì)
private ValueExpression value;
...
if (value != null)
component.setValueExpression("value",
value);
濡傛灉瑕佹帴鍙楀瓧絎︿覆鐨勫睘鎬ц榪欐牱寰楀埌瀛楃涓茬殑鍊箋€?/p>
if (id != null)
{
component.setId(id.getExpressionString());
}
3銆佸鏋滄兂鎶婄粍浠跺湪Facelets涓簲鐢紝瑕佸啓Renderer銆傦紙鑷沖皯鎴戞槸榪欐牱錛屼笉鍐橰enderer鍦‵acelets涓氨涓嶈兘搴旂敤銆備絾鍦↗SP涓彲浠ヤ嬌鐢級(jí)榪樿鍐欎竴涓猚omponets.tablib.xml銆?/p>
鍦≧enderer涓緱鍒拌〃杈懼紡鐨勫€鹼細(xì)
ValueExpression valueVe = component.getValueExpression("value");
if
(valueVe != null) {
Object _object =
valueVe.getValue(context.getELContext());
//...
}
4銆佽鍦╢aces-config.xml涓厤緗甤omponent 鍜宺ender-kit.
鎬諱箣鍐橨SF鐨勭粍浠舵槸寰堥夯鐑?chǔ)鐨勪簨鎯呫€傚鏋滄湁鍏朵粬鐨勯€夋嫨榪樻槸涓嶈鑷繁鍐欍€備絾鏄啓濂戒箣鍚庣敤璧峰嵈鏄潪甯哥殑鏂逛究鐨勩€?/p>
<xy:tree value="#{menuBean.nodes}"
title="#{resource.menu_title}"/>
涓€鍙ヨ瘽灝卞彲浠ョ敓鎴愪竴鏍?wèi)銆傚緢鐖藉惂錛?/p>