查看:
<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附加到我的网址。有什么办法可以让它附加吗?
答案 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";