f:beanがjsfでparamがnullの場合

私の問題は、パラメータの値がBean内でnullであることです

xhtmlでは、私はこのコードを持っています:

            
        

ナビゲーションではnews.xhtmlにリダイレクトします

public String editNews(){
    return "editNews";
}

これはfaces-config.xmlのコードです


  #{navigation.editNews}
  editNews
  /news.xhtml
  

私はnews.xhtmlのボタンを押して、paramを取得しようとするとメソッドを呼び出すBeanを持っていますが、それはnullです

FacesContext fc = FacesContext.getCurrentInstance();
Map params = fc.getExternalContext().getRequestParameterMap();
String = params.get("newsId"); 
3

1 答え

The adds a request parameter. So this parameter has a lifetime of exactly one HTTP request. You've a in your navigation case which basically instructs the webbrowser to send a new request on the given location. This new request does not contain the parameter anymore.

基本的に2つのオプションがあります:

  1. Get rid of in the navigation case.

  2. Make it a normal GET request instead. If you're on JSF2, use instead.

                
              
    
    

    Or if you're still on JSF 1.x (the usage of navigation cases less or more hints this as they are superfluous in JSF 2 thanks to the new implicit navigation feature; or you must be reading outdated tutorials/books/answers targeted on JSF 1.x; also the absence of JSF 2.0 tag on your question is suspicious), then use a normal link instead.

    #{news.title}
    

参照:

5
追加された
この答えは+1です。もう1つの選択肢があります。 JSF 2の場合、リダイレクトでパラメータを指定します。return "news.xhtml?faces-redirect = true&newsId =" + paramMap.get( "newsId")
追加された 著者 Mike Braun,
ありがとう、それは動作します!非常に便利なポスト! :)
追加された 著者 Stefan Ivanov,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript