我已经看到这个问题问了很多,但是没有一个得到正确的回答,所以我决定再问一次。所以如果我有这个:如果我在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
支持 bean 中的值。我往里看FacesContext.getCurrentInstance().getAttributes()
,FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
我似乎找不到它。更进一步,所以我尝试:
在里面B.xhtml
,我现在有
<h:inputHidden id="hiddenFormId" value="#{formId}"/>
<h:outputText value="#{formId}"/>
这个想法是我可以访问under keyformId
的值。但现在如果我有: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>
那么如何访问托管 bean 中的 ui:param 值?