首页 文章

解释由outputText呈现的字符串变量中的JSF组件

提问于
浏览
0

我有一个与 myView bean关联的XHTML文档中的代码 .

<p:outputtext value="#{myView.getDynamicContent()}" />

方法 getDynamicContent() 返回有时包含另一个PrimeFaces标记的文本,例如 <p:inputMask> .

当第一个 <p.outputtext> 被评估时,它打印所有的方法作为文本返回,并且它不被评估!

我能解决这个问题还是不可能?如果不可能,我想用 <input> 标签替换所有 <p:inputMask> . 在这种情况下,如何在Java视图代码中恢复插入到输入标记中的值?

1 回答

  • 0

    你要做的不是最好的事情 . 您添加到原始xhtml页面的标记不会直接转换为HTML标记 . 首先,对于每个jsf标记,您将获得一个创建的组件,该组件将添加到组件树中 . 只有在树完成后才会计算表达式 . 并且您的表达式不能更改组件树,因为它只会被计算到组件对象的“value”字段中 . 并且只有在最后的渲染响应阶段,该值才会添加到HTML标记中 . 就像BalusC已经注意到,如果你使用c创建动态组件标记将是netter:如果c:标签而不是使用支持bean中的java代码生成标记 . 如果您坚持使用您的解决方案,那么您对上一个问题的回答是,您始终可以使用HttpServletRequest对象直接访问使用表单提交的输入中的值 . 您始终可以从FacesContext获取它 .

相关问题