2013-10-25 78 views
0

我使用JSF 1.2,並與重定向的導航規則,我的問題是如何添加請求參數來查看重定向JSF 1.2添加參數來重定向請求

+1

這個貌似有用:http://stackoverflow.com/questions/3605238/how-do-you-pass-view-parameters-when-navigating-from-an-action-in-jsf2 – Omar

+2

@奧馬爾自JSF 2以來的作品.OP的問題是JSF 1.2。 –

+0

謝謝,我看到JSF 2中的solucion,但我不知道是否存在與JSSF 1.2相似的功能 – jrey

回答

1

這是不可能的JSF 1.x中使用導航規則改爲使用ExternalContext#redirect()

public void action() throws IOException { 
    // ... 

    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
    String url = ec.getRequestContextPath() + "/page.jsf?someparam=" + URLEncoder.encode(someparam, "UTF-8"); 
    ec.redirect(url); 
} 
+0

我可以通過API以編程方式添加查詢參數鍵和值,而不是將新的param作爲字符串附加到url中嗎? – user2918640

+1

@ user2918640:你可以。 JSF僅提供公共URL構建器API。 JSF實用程序庫OmniFaces有一個方便的'Faces#redirect()'方法,可以自動預置上下文路徑和URL編碼參數。 – BalusC

+0

但我如何在primefaces中做到這一點?複製OmniFaces源代碼?我想安全地將params添加到可能已經包含參數的url中。 – user2918640