我有一个使用Primefaces的小应用程序,JSF允许用户在单击“编辑”按钮时编辑文本内容。当单击编辑按钮时,页面上会显示一个带有“退出”按钮的面板,以退出编辑模式。这一切都运行得很好。但是,当用户单击exit按钮时,面板将再次隐藏。相关代码如下:
<p:panel id="editModePanel" rendered="${editorBean.id>0}">
<p>Edit Mode: All changes will be saved to existing blog post</p>
<p:commandButton accesskey=""value="Exit"
update="@form"
action="#{editorBean.exitEditMode()}"
onclick="PF('block').show();"
oncomplete="PF('block').hide();"
styleClass="ui-priority-primary"
>
</p:commandButton>
</p:panel>在呈现面板之前,当用户单击编辑按钮(未显示)时,editorBean.id值被设置为一个数字,该数字会导致面板呈现在表单submit上。
当用户单击exit退出编辑模式时,editorBe.id被设置为null,我已经验证了这种情况正在发生。但是,面板不会隐藏,它将保持渲染状态。
我尝试过使用onclick来打开和关闭面板。但是,视图是会话作用域的,所以如果用户刷新页面或关闭浏览器窗口,我需要保持状态。
提前感谢!
发布于 2017-04-30 15:48:10
所以这只是一个新手的错误。问题是我的支持bean中的变量作用域。我在方法中设置了id = null,但没有设置全局editorBean.id = null。一旦我做了改变,它就完美地工作了-吸取教训
https://stackoverflow.com/questions/43703558
复制相似问题