我在这篇文章中有一个与myView
bean关联的XHTML文档中的代码。
<p:outputtext value="#{myView.getDynamicContent()}" />
方法getDynamicContent()
会返回有时包含其他PrimeFaces标记的文字,例如<p:inputMask>
。
当第一个<p.outputtext>
被评估时,它会打印所有由方法作为文本返回并且它没有被评估!
我能解决这个问题还是不可能?
如果不可能,我会考虑将所有<p:inputMask>
替换为<input>
标记。在这种情况下,如何在Java视图代码中恢复插入到输入标记中的值?
答案 0 :(得分:0)
你要做的不是最好的事情。您添加到原始xhtml页面的标记不会直接转换为HTML标记。首先,对于每个jsf标记,您将获得一个创建的组件,该组件将添加到组件树中。只有在树完成后才会计算表达式。并且您的表达式不能更改组件树,因为它只会被计算到组件对象的“value”字段中。并且只有在最后的渲染响应阶段,该值才会添加到HTML标记中。 就像BalusC已经注意到,如果你使用c创建动态组件标记将是netter:如果c:when标签而不是使用支持bean中的java代码生成标记。 如果您坚持使用您的解决方案,那么您对上一个问题的回答是,您始终可以使用HttpServletRequest对象直接访问使用表单提交的输入中的值。你总是可以从FacesContext获得它。