Я видел, как этот вопрос задавали много раз, однако ни один из них не получил правильного ответа, поэтому я решил спросить еще раз. Итак, если у меня есть это: если я нахожусь в A.xhtml
и я
<ui:include src="B.xhtml">
<ui:param name="formId" value="awesome Id"/>
</ui:include>
так что в B.xhtml
я могу это сделать
<h:outputText value="#{formId}"/>
когда я запускаю A.xhtml
, я вижу, что awesome Id
печатается на экране. Однако как мне получить доступ к значению formId
в компоненте поддержки. Я заглядываю внутрь FacesContext.getCurrentInstance().getAttributes()
и FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
и никак не могу найти. Чтобы пойти немного дальше, я пытаюсь:
Внутри B.xhtml
теперь у меня есть
<h:inputHidden id="hiddenFormId" value="#{formId}"/>
<h:outputText value="#{formId}"/>
идея в том, что я могу получить доступ к значению formId
в RequestParameterMap
под ключом hiddenFormId
. Но теперь, если у меня есть:
<h:form id="myForm">
<ui:include src="B.xhtml">
<ui:param name="formId" value="awesome Id"/>
</ui:include>
<a4j:commandButton render="myForm" value="My Button"/>
</h:form>
тогда я получу эту ошибку, если загляну внутрь запроса POST (в режиме отладки chrome или ff)
<partial-response><error><error-name>class javax.faces.component.UpdateModelException</error-name><error-message><![CDATA[/B.xhtml @9,61 value="${formId}": /index.xhtml @27,61 value="awesome Id": Illegal Syntax for Set Operation]]></error-message></error></partial-response>
Итак, Как получить доступ к значению ui:param в управляемом компоненте?
hiddenValue
это идентификатор outputLabel, а что такоеUiTreeWalker
? - person Thang Pham   schedule 21.09.2012