【问题标题】:jsf - commandLink doesn't call bean methodjsf - commandLink 不调用 bean 方法
【发布时间】:2023-03-27 20:00:01
【问题描述】:

我的 h:commandLink 不起作用。我在 faces-config.xml 中有一个导航规则,在我的 bean 中有一个字符串方法 doSave()。我不知道为什么它只重新加载页面而不跳转到doSave()方法。

jsf页面

<h:form id="surveyForm">
    <div class="srvButton">
        <h:commandLink action="#{surveyBean.doSave}" value="#{msg.srvButton}" />
    </div>
</h:form>

人脸配置

<navigation-rule>
    <from-view-id>/pages/survey.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>success</from-outcome>
        <to-view-id>/pages/surveyFinish.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

public String doSave() {

    // Kundendaten speichern
    saveCustomer();     

    return "success";
}

我清理了jsf页面中的内容以获得更好的视图,但你只需要知道我认为的表单和按钮。

【问题讨论】:

  • 重新加载可能表明转换/验证失败。你的表单中有h:messages 标签吗?
  • 不,我在表单中只有一些h:selectOneRadiot:inputText 和一个h:dataTable 标签。我有一个类似的网页,它在那里工作,但我找不到差异
  • 然后尝试添加h:messages。它显示所有验证错误,您将更深入地了解发生的情况。
  • 我还没有任何验证方法,但我会尽快实现它们。错误必须在不同的地方
  • 您是否尝试使用消息标签运行您的代码?即使您没有验证方法,至少也会执行转换。您能否验证您的操作方法是否被调用(调试)?

标签: forms jsf javabeans commandlink


【解决方案1】:

我刚刚解决了我的问题。我用ui:fragment标签替换了我所有的c:if标签,它成功了!也许,这可能会让你感兴趣c:foreach vs ui:repeat 感谢@matthandy 的努力..

【讨论】:

    猜你喜欢
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多