簡體   English   中英

JSF 2.0通過EL檢查組件是否在復合組件內部有效

[英]JSF 2.0 checking by EL if components are valid inside composite component

在我的JSF復合組件中有一個示例要實現:

<h:inputText id="name" value="#{cc.attrs.value.name}" styleClass="#{(component.valid) ? 'required' : 'required invalid'}" validatorMessage="bad name" requiredMessage="name required" immediate="true" required="true">
    <f:validateRegex pattern="^[\p{L}' ]{2,19}$" />
    <f:ajax event="blur" execute="name" render="name testPanel" immediate="true"/>
</h:inputText>

<h:inputText id="surname" value="#{cc.attrs.value.surname}" styleClass="#{(component.valid) ? 'required' : 'required invalid'}" validatorMessage="bad surname" requiredMessage="surname required" immediate="true" required="true">
    <f:validateRegex pattern="^[\p{L}' ]{2,19}$" />
    <f:ajax event="blur" execute="name" render="surname testPanel" immediate="true"/>
</h:inputText>

<h:panelGroup id="testPanel" styleClass="#{(!name.valid || !surname.valid) ? 'warning' : 'none'}">
    <h:message id="msgName" for="name" showSummary="true" showDetail="false" />
    <h:message id="msgSurname" for="surname" showSummary="true" showDetail="false" />
</h:panelGroup>

問題是如何在“ testPanel”上評估名稱或姓氏是否有效/無效。 我希望消息“ msgName”和“ msgSurname”都用樣式化的跨度(HTML輸出)包裝,如果沒有“名稱”或“姓氏”的錯誤消息,則不會出現。

任何幫助表示贊賞:)

使用binding屬性將組件綁定到EL作用域:

<h:inputText binding="#{name}" ... />
<h:inputText binding="#{surname}" ... />

這樣,您的EL在styleClass屬性中的嘗試將起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM