我正在使用JSTL forEach和ah創建一個動態表:dataTable,並且所有的控件和潛在的錯誤信息都很好地顯示出來,但我現在堅持要爲每個控件獲取值。我將需要創建(我認爲)一個動態EL表達式來設置值,但還沒有能夠讓我的任何版本工作。我希望使用c:out構建表達式,但發現該標記在JSF2中不可用。JSF2構建動態EL表達式
那麼,是否有可能在頁面中構建動態表達式? 如果控件尚未構建,如何在後臺bean中設置表達式?
<h:dataTable id="dtDetails" styleClass="slate_table" value="#{remediationDetail.eventList}" var="dataItem">
<c:forEach items="#{remediationDetail.eventHeaders}" var="key">
<h:column>
<f:facet name="header">#{key.fieldDefinition.fieldConfiguration.customLabel}</f:facet>
<h:inputText value="" id="txtNumber" styleClass="remediation_textbox error_marker" title="#{remediationDetail.errorMessages(dataItem.id, key.fieldDefinition.id)}">
<f:convertNumber maxFractionDigits="0" maxIntegerDigits="19"/>
</h:column>
</c:forEach>
</h:dataTable>
一如既往,任何幫助或方向表示讚賞。
問候,
邁克
我覺得你會擁有時的foreach將創建一個以上的inputText具有相同id.U可避免這種情況發生的一個問題如果u省略了id屬性。 – Bardelman
你是否試圖寫下如下內容:#{remediationDetail.errorMessages(#{dataItem.id},#{key.fieldDefinition.id}? – Bardelman
我還沒有走下那條路,但很快就會到來。表達式會更快,因爲我會知道引用表達式的確切變量/方法。調用backing bean將使我使用反射並在對象變量中運行循環。在JSF接管並且頁面爲 – MikeR