2014-05-06 75 views
0

我有面1.2面臨ADF無法獲得請求參數

在我管理的bean我試圖訪問POST請求的參數,但總是得到空的ADF Web應用程序。

這是我的帖子的形式,我張貼的面孔:

<form name="input" action="http://127.0.01:7072/myapplication/faces/login.jspx" method="post"> 
    <input type="hidden" name="user" id="user" value="myUserName"/> 
    <input type="submit" value="Submit"/> 
</form> 

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("user"); 

FacesContext.getCurrentInstance().getExternalContext().getRequest().getParameter("user"); 

但我總是零和的形式,我得到的方法是:GET,奇怪!

+1

這是你生成的jsf表單的html嗎?或者您是否嘗試發佈純html表單? – bhdrk

+0

@bhdrk我嘗試發佈純html格式 – GingerHead

+0

然後閱讀此[post](http://stackoverflow.com/questions/12175763/how-to-send-post-request-to-jsf-component-without-using- html-form)@BalusC。它可以給你想法。 – bhdrk

回答

0

我管理通過將我的解析操作包含在我的應用程序正在使用的過濾器映射中來讀取請求參數。

在一個非常不正常的方式FacesContext的始終拒絕透露目前的參數,到現在它是一個謎,我爲什麼它的設計很喜歡,即使通過其外部環境......

1

當你做出的請求一個URL,如:

http://server/faces/somepage.jspx

ADF輸入反應框架你用 「HTTP錯誤302臨時移動」 響應和r edirect你的網址,如:

http://server/faces/somepage.jspx?_adf.ctrl-state=888888&_afrLoop=9999999

所以你的第一個POST請求是忽略和瀏覽器發送的其他請求到ADF響應返回新的URL,是因爲POST方法發送參數請求正文瀏覽器不重新發送他們在新的獲取請求 所以我認爲你沒有辦法讓參數直接在ADF頁面! :(

,但我認爲最好的方法是創建一個的Servlet,讓你在它帕拉姆並把它們會議然後重定向從Servlet中的用戶到你的ADF頁面:)