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



我在与myView bean关联的XHTML文档中有这段代码。

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

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

当计算第一个<p.outputtext>时,它将方法返回的所有内容打印为文本,并且没有计算!

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

你想做的不是最好的事情。添加到原始xhtml页面中的标记不会直接转换为HTML标记。首先,为每个jsf标签创建一个组件,并将其添加到组件树中。只有在树完成之后,表达式才会被求值。你的表达式不能改变组件树,因为它只会被评估为组件对象的"值"字段。只有在最后的Render Response阶段,这个值才会被添加到HTML标记中。正如BalusC已经指出的那样,如果使用c:if c:when标记来创建动态组件标记,而不是使用后台bean中的java代码生成标记,效果会更好。如果您坚持您的解决方案,那么最后一个问题的答案是,您总是可以直接使用HttpServletRequest对象访问与表单一起提交的输入的值。你总是可以从FacesContext中获得它

相关内容

  • 没有找到相关文章

最新更新