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