包含漂亮面孔后,命令按钮不会调用它的操作方法
Posted
技术标签:
【中文标题】包含漂亮面孔后,命令按钮不会调用它的操作方法【英文标题】:Command button doesn't calls it's action method after including prettyfaces 【发布时间】:2014-12-17 10:25:24 【问题描述】:我最近在我的 web 应用程序中嵌入了漂亮的面孔,现在我的行为真的很奇怪。
我有一个带有命令按钮的更新用户表单:命令按钮如下所示。
命令链接和命令按钮都不会调用 bean 中的操作方法。 我的 bean 是一个 View-Scoped bean。
当我点击按钮时,页面只是重新加载并且定义为被调用的动作没有被调用!简单地说,只需执行页面重新加载。
<p:commandButton style=" float: right; margin-left: 10px; " id="saveEditUser" update=":form" value="Save" action="#editUser.updateUser()" ajax="false" />
但是,当我删除漂亮面孔中的相关行时,我的页面就会找到。 (以下是我在与编辑用户相关的漂亮面孔中定义的)
<url-mapping id="EditUser" onPostback="false">
<pattern value="/User/Edit/#initalUserName" />
<view-id value="/user/EditUser.xhtml" />
</url-mapping>
【问题讨论】:
【参考方案1】:通过改变漂亮的面孔,它现在可以工作了。
<url-mapping id="EditUser" onPostback="false">
<pattern value="/EditUser/" />
<view-id value="/user/EditUser.xhtml" />
<query-param name="initalUserName"> #editUser.initalUserName </query-param>
</url-mapping>
注意:即使我在没有反斜杠的情况下再次更改,同样的问题也会发生。
【讨论】:
【参考方案2】:点击按钮后真的会调用editUser.updateUser()
方法吗? (使用断点确定)
我猜你的映射应该是:
<url-mapping id="EditUser" onPostback="false">
<pattern value="/User/Edit/#initalUserName" />
<view-id value="/user/EditUser.jsf" />
</url-mapping>
注意.xhtml
被.jsf
替换
【讨论】:
感谢您的 cmets。实际上 updateUser() 并没有以任何方式调用,页面只是被刷新了。但我能够通过对映射进行一些更改来解决问题。以上是关于包含漂亮面孔后,命令按钮不会调用它的操作方法的主要内容,如果未能解决你的问题,请参考以下文章
onOptionsItemSelected() 方法不会在 Fragment 上调用