JSFを触る機会があったときに思い出せるよう、よく使用したタグを軽くメモ。
基本
ui:composition
<ui:composition></ui:composition>
大枠。xmlnsの指定やtemplateの読み込みができる。
<ui:composition xmlns="http://www.xx.xxx/1234/xhtml"
xmlns:ui="http://java.xx.com/jsf/facelets"
xmlns:h="http://java.xx.com/jsf/html"
xmlns:f="http://java.xx.com/jsf/core"
template="/WEB-INF/templates/testTemplate.xhtml">
~html~
</ui:composition>
f:metadata
<f:metadata></f:metadata>
タグ内でバインド変数を渡したり、イベント実行できる。
(例)
<f:metadata>
<ui:param name="TestBean" value="#{testController}"/>
<ui:param name="bean" value="#{testController}"/>
<f:event type="preRenderView" listener="#{testController.preRenderView}" />
</f:metadata>
ui:define
<ui:define></ui:define>
jsやcssを指定できる。メインもこのタグで指定する。
(例①jsの場合)
<ui:define name="contents-js">
<script type="text/javascript" src="#{request.contextPath}/resources/js/test.js" />
<script type="text/javascript" src="#{request.contextPath}/resources/js/header.js" />
</ui:define>
(例②cssの場合)
<ui:define name="contents-css">
<link type="text/css" rel="stylesheet" href="#{request.contextPath}/resources/css/test.css" />
</ui:define>
(例③メインの場合)
<ui:define name="content">
~html~
</ui:define>
その他
ui:repeat
<ui:repeat value="#{bean.testList}" var="row" varStatus="testStat"></ui:repeat>
タグ内繰り返し。
ui:fragment
<ui:fragment rendered="#{testController.flg}">></ui:fragment>
フラグがtrue/falseによって表示させるか否か制御できる。
h:inputHidden
<h:inputHidden id="testId" value="#{testController.id}"></h:inputHidden>
画面に表示させないが値をjsに渡したい/画面で保持したい項目を設定することができる。