2013-10-31 34 views
0

查看:F:param所不附加到URL時,H:命令按鈕被點擊

<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> 

豆:

​​

我使用@ViewScoped我支持bean控制器。

我的問題是,當我點擊開始按鈕,它不會附加值爲#{job.name} param jobName到我的網址。有什麼辦法可以讓它追加?

回答

4

這是因爲您沒有在重定向網址中指定它。

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"; 
+0

謝謝。爲什麼當我使用''時,我不必在重定向url中明確指定它? – user1746050

+0

因爲它不發送重定向。我認爲是時候讓JSF暫停並學習基本的HTTP。 – BalusC