2

我想通过post在url中设置一个参数,但是这个页面只执行一个方法并使用h:commandButton更新页面。

<h:commandButton value="Simular" 
                action="#{simulador.simular()}" 
                style="margin:0 4px 0 0;"   
                immediate="true">
       <f:ajax render="@form" immediate="true"/>
</h:commandButton>

我怎样才能做到这一点?

4

1 回答 1

2

URL 仅在同步请求时更改。只能在 GET 请求上向 URL 添加查询字符串。在 POST 之后发送重定向是创建同步 GET 请求的一种方法。

public String simular() {
    // ...

    return "page.xhtml?foo=42&faces-redirect=true";
}

这将重定向到/context/page.xhtml?foo=42.

如果您实际上不需要在基于回发的操作方法中执行任何业务逻辑,那么您也可以只使用普通按钮而不是命令按钮。

<h:button value="Simular" outcome="page.xhtml">
    <f:param name="foo" value="42" />
</h:button>
于 2013-04-23T12:41:40.010 回答