0

看法:

<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 控制器。

我的问题是当我单击开始按钮时,它不会将带有值的参数 jobName 附加#{job.name}到我的 url。有什么办法可以让它附加吗?

4

1 回答 1

4

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

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

如果您在重定向 URL 中指定它,那么它显然会出现在 URL 中。

String jobNameParam = URLEncoder.encode(job.getName(), "UTF-8"); // Or ISO-8859-1, depending on server config.
return "/viewDetails?jobName=" + jobNameParam + "&faces-redirect=true";
于 2013-10-31T10:26:08.690 回答