阻止h:Commandbutton提交表单

时间:2014-01-20 12:19:50

标签: jsf commandbutton

我有一个表单和两个嵌入其中的命令按钮,如图所示。

<h:commandButton label="Submit" type="button" 
    image="resources/images/Save4.jpg" 
    actionListener="#{userController.createNewUser()}" /> 

<h:commandButton label="Home" 
    image="resources/images/Save4.jpg" 
    action="/index.jsf?faces-redirect=true" /> 

单击“主页”按钮应重定向到index.jsf,但会导致表单提交。我不想将home命令放在另一个表单标记中,因为它会导致UI失真。请建议出路。

2 个答案:

答案 0 :(得分:3)

命令按钮提交整个POST表单。这是普通页面到页面导航的错误工具。它也不是SEO友好的(搜索机器人不会索引POST表格)。

如果唯一的功能要求是具有可导航到不同页面的可点击图像,那么只需使用<h:link><h:graphicImage>

<h:link outcome="/index.jsf">
    <h:graphicImage name="images/Save4.jpg" />
</h:link>

答案 1 :(得分:1)

无论如何,使用POST进行导航是一个坏主意。相反,使用这样的东西:

<h:button label="Home" image="..." outcome="/index" />