我有这个p:inputTextarea:
<p:inputTextarea id="inputTextArea" value="#{myBean.data}" />
由于我在其他位置移动了提交表单按钮,因此单击按钮时myBean.data保持为空
所以我这样做了:
<p:inputTextarea id="inputTextArea" value="#{myBean.data}}">
<f:ajax event="blur" />
</p:inputTextarea>
似乎有效!
但我觉得有一种更优雅的方式可以做到这一点。 我只需要将inputTextarea中的值写入bean,这样当我单击另一个表单中的按钮时,数据就可用了。
有什么想法吗?
答案 0 :(得分:0)
这有点不对劲。您必须了解JSF的生命周期。要做一个简短的回答,在你的按钮上你应该&#34;处理&#34; &#34; @this(按钮本身)和inputTextArea&#34;。然后一切都会好起来的。作为进一步的性能改进,您可以使用相同的按钮&#34; partialSubmit = true&#34;这样只有表格提交了所说的字段(输入和按钮)。所以你只需要
<p:inputTextarea id="inputTextArea" value="#{myBean.data}" />
(最后没有双括号)然后
<p:commandButton ..... process = "@this inputTextArea" .... partialSubmit = "true" />
但请相信我,如果你现在遇到这个(如此简单的)问题......你需要获得一本认真的JSF书并开始喜欢Primefaces手册。