gpt4 book ai didi

JSF - 更改 h :commandButton (2. 0) 的操作

转载 作者:行者123 更新时间:2023-12-04 14:21:50 27 4
gpt4 key购买 nike

我是 JSF 2.0 的新手。在上一个版本中,我了解到如果我想更改关于“发送给客户端的内容”的规则,我只需要配置 faces-config.xml。

现在,在2.0版本上,如何管理Action?例如,如果我在 index.xhtml 上有这个

<h:commandButton id="submit" value="submit" action="response" />

我需要调用一个名为 response.html(不是 xhtml)的页面或放置在/folder/response.html 中的页面,或者其他什么?怎么办?我知道 JSF 2.0 在这些方面非常灵活(href 链接的概念被打败了)。所以我想我可以用其他方法来解决这个问题,对吧?

最佳答案

action可以指出两点:

  1. 方法表达式 action="#{bean.methodname}"该方法看起来像这样:

    @ManagedBean
    @RequestScoped
    public class Bean {
    public String methodname() {
    // Do some business task here.
    return "response";
    }
    }

    执行该方法后,该操作实际上将包含该方法的返回值,如下所示:action="response" .

    您还可以用通常的 Java 方式“动态地”控制结果:

    public String methodname() {
    if (someCondition) {
    return "somepage";
    } else {
    return "anotherpage";
    }
    }

    根据条件结果,操作将以 action="somepage" 结束。或 action="anotherpage"

  2. 与当前 XHTML 页面位于相同文件夹中的另一个 XHTML 页面。您只需指定文件名:action="response" .

无论哪种方式,它都会转到由outcome + ".xhtml" 组成的XHTML 页面。其中 outcome是操作值(例如 response.xhtmlsomepage.xhtmlanotherpage.xhtml ),它应该与包含 h:commandButton 的 XHTML 文件位于同一文件夹中.

您不需要在faces-config.xml 中配置任何东西|为了这。以前,在 JSF 1.x 时代,您需要定义 <navigation-case>为此。

另见:

关于JSF - 更改 h :commandButton (2. 0) 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com