PrimeFaces commandButton 无法导航或更新
Posted
技术标签:
【中文标题】PrimeFaces commandButton 无法导航或更新【英文标题】:PrimeFaces commandButton doesn't navigate or update 【发布时间】:2011-06-06 01:39:13 【问题描述】:我正在使用 Primefaces 让我的应用程序更漂亮一些。我注意到p:commandButton
和h:commandButton
的工作方式不同。
p:commandButton
调用该方法,但没有其他任何事情发生。 h:commandButton
调用该方法并返回一个导航。
我在使用p:commandButton
时按下登录按钮后重定向时遇到问题。怎么处理?
我确实有一个更新参数:
<p:commandButton value="Login" action="#login.login" type="submit" update="msgs" />
【问题讨论】:
【参考方案1】:我认为 Cagatay ment 是什么:
不浏览页面:
<p:commandButton action="home.xhtml" value="Go Home"/>
有效(重定向页面):
<p:commandButton action="home.xhtml?faces-redirect=true" value="Go Home"/>
有效(重定向页面)
<p:commandButton action="home?faces-redirect=true" value="Go Home"/>
如果 .xhtml 是您在 web.xml 中定义的默认后缀:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
更多信息可以在 primefaces 论坛中找到,例如 this discussion about navigation
希望对你有所帮助...
【讨论】:
【参考方案2】:<h:commandButton
styleClass="btn btn-primary-active upgrade" data-dismiss="modal"
value="Upgrade Account"
action="profile.do?faces-redirect=true&tab=plan"
oncomplete="$('#freeGiftModal').hide();" process="@this" partialSubmit="true" immediate="true"/>
我使用命令按钮导航到个人资料页面,它对我来说工作正常。
【讨论】:
您的回答与其他人的回答实际上没有什么不同,而且在某种程度上它更糟。除此之外,它不是p:commandButton
,它具有正确的属性“正常工作”,它包含对h:commandButton
无效的属性,或者其他答案之一【参考方案3】:
上述解决方案都不适合我。 你仍然可以使用简单的 javascript
<p:commandButton onclick="window.location.href =home.xhtml"
style="height: 20px" type="button" title="title" icon="ui-icon-transferthick-e-w"/>
【讨论】:
【参考方案4】:我也有类似的问题。
我正在使用 primefaces 和 primefaces mobile,使用时在 Firefox 中导航失败
<p:commandButton>
带有 ajax="false" 和 action="find.xhtml?faces-redirect=true"。
我让它在 Firefox 中也能工作的唯一方法是使用 <h:commandButton>
:
<h:commandButton value="#msg.find" process="find"
action="find.xhtml?faces-redirect=true" />
【讨论】:
【参考方案5】:<p:commandButton>
需要以下条件之一才能正常工作:
update
属性列出要重新渲染的组件的 ID(用于 AJAX 请求)
属性ajax="false"
进行正常的非ajax 提交。
如果您两者都没有,则该按钮默认执行 AJAX 请求而没有 UI 反馈。
此外,当周围的 <h:form>
具有 enctype
属性时,我遇到了两个选项都无法正常工作的问题。
【讨论】:
如果你想要一个带导航的同步请求,你需要ajax="false"
。至于update
参数,请参阅我在one of your previous questions 中的评论,您尚未回复。
对不起,刚刚忘记了-.-
至于enctype="multipart/form-data"
问题,为此您需要确保已按照用户指南中的说明配置了 PrimeFaces FileUploadFilter
。
@BalusC: 啊,现在我知道enctype
来自哪里了——文件上传原来是不必要的,但属性仍然存在以搞砸事情......谢谢!跨度>
【参考方案6】:
如果您在进行导航并且请求是使用 ajax 完成的,则必须使用重定向。
【讨论】:
以上是关于PrimeFaces commandButton 无法导航或更新的主要内容,如果未能解决你的问题,请参考以下文章
Primefaces Press Enter 执行commandButton
PRIMEFACES - 如何通过单击 <p:commandButton> 刷新 <p:graphicImage>?
Primefaces按Enter执行commandButton
使用commandButton Primefaces 3.4从dataTable内部提交表单时selectOneMenu null