f:单击h:commandbutton时,param不会附加到url

时间:2013-10-31 09:59:18

标签: jsf primefaces

查看:

<h:form>
    <p:dataTable var="job" value="#{controller.jobs}">
       <p:column>
          <h:commandButton value="Start" action="#{controller.start(job)}">
             <f:param name="jobName" value="#{job.name}"/>
          </h:commandButton>
     </p:dataTable>
</h:form>

豆:

public String start(Job job){
    return "/viewDetails?faces-redirect=true";
}

我正在使用@ViewScoped作为我的支持bean控制器。

我的问题是当我点击开始按钮时,它不会将值为#{job.name}的param jobName附加到我的网址。有什么办法可以让它附加吗?

1 个答案:

答案 0 :(得分:4)

这是因为您没有在重定向网址中指定它。

return "/viewDetails?faces-redirect=true";

如果您在重定向网址中指定它,那么它 - 显然 - 会显示在网址中。

String jobNameParam = URLEncoder.encode(job.getName(), "UTF-8"); // Or ISO-8859-1, depending on server config.
return "/viewDetails?jobName=" + jobNameParam + "&faces-redirect=true";