<f:param>をデータテーブルに追加するJSF

ここでf:paramを使用して、requestidをパラメータとしてレビューページに渡そうとしています。現在、以下のようにしていますが、review.xhtmlから再度投稿する必要があるため、managedプロパティが必要なときに機能しません。このf:paramタグを追加して、それをbeanで処理するにはどうすればいいですか?

      
              
                  
                      
                 
                 
                      
                 

              

              
                  
                      
                  
                  
              

                
                  
                      
                  
                    
            
          

ありがとう

0
私はそれを完全に理解していないので、 POST GET ではなく、
追加された 著者 Jigar Joshi,
はい:)そうです
追加された 著者 sys_debug,
あなたの状況を正しく理解しているかわかりません。データテーブルのIDをreview.xhtmlページに渡すには、 を使用したいということです。また、review.xhtmlページには、IDを再送信する必要があるフォームがありますが、送信しようとすると消えてしまいます。私は正しいですか?
追加された 著者 Mr.J4mes,

4 答え

私はあなたが次のことを試すことができると思います:

。あなたのBeanをRequestScopedとして保存し、review.xhtmlのフォームに隠しフィールドを入れてid:


   ...
   
   ...


@ManagedBean(name = "mrBean")
@RequestScoped
public class MrBean {
   @ManagedProperty(value = "#{param.id}")
   private String id;
}

. Keep your bean as RequestScoped and put a inside the commandButton in review.xhtml:


   ...
   
      
   

。 BeanをViewScopedに変更する

@ManagedBean(name = "mrBean")
@ViewScoped
public class MrBean {
   private String id;

   @PostConstruct
   public void prepareReview() {
       HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
       id = request.getParameter("id");
   }
}
2
追加された
commandButton f:param をまったくサポートしていますか?
追加された 著者 Danijel,
ああ、申し訳ありませんが、少し新しくちょっと難しいようです。それはidで文字列を実際に持っているという点では機能しましたが、私は調査しなければならない別の問題があると思います。どちらの方法でも、本当に有益であり、患者であることに感謝します。D
追加された 著者 sys_debug,
私はこれが乱雑な方法だと思う。それはトリックをしようとするようなものです:(私は確かな答えが必要です。上記の@edzeはそれを得るようですが、私はキーと値のコンボを取得しています
追加された 著者 sys_debug,
どういたしまして! :P
追加された 著者 Mr.J4mes,
うーん、私はあなたが言うことはトリックではないと思う^^。単にIDを取得したい場合は、RequestScopedバッキングBeanの場合に再度取得するために、IDをフォームのどこかに格納する必要があります。それ以外の場合は、ViewScoped Beanを使用して一度だけ取得することができます。私があなたに与えたことは、私がやっていることです^^。私はあなたが私の2番目または3番目のオプション=と一緒に行かなければならないと思う)。
追加された 著者 Mr.J4mes,

JSF

  
      
          
    
    
        
            
    
 

Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
int requestID = Integer.parseInt(params.get("myId"));
1
追加された
netbeansのデバッガでは、idの値をabc-> 9d9sd9sdsdsds7と表示しています。あなたのBeanコードを次のように変更しなければなりません:id = params.get( "requestID");それが結果でした。キーではなく値を得るために私は何をすることができますか?
追加された 著者 sys_debug,
ああ。私は何かを忘れた。 sitebeanのメソッドは@PostConstructでなければなりません。 Mr.J4mesコードを見てください:)
追加された 著者 edze,

テーブルにはf:paramsはありません。しかし、それらはf:属性を持つことができます。

0
追加された
待って...テーブルの押されたセルから次のページのIDを取得するにはどうすればいいですか?レビュービーンで複数のタスクが必要なので
追加された 著者 sys_debug,
@EJP私が助けるために使うことができるサイトのイラスト?
追加された 著者 sys_debug,
彼の質問はこの質問に関連していると思います。私の答えは間違っているようです
追加された 著者 Mr.J4mes,
ハァッ?データテーブルの中に を置くと、それは機能しません。
追加された 著者 Mr.J4mes,
追加された 著者 EJP,
@sys_debugすでに述べたように、f:属性を使用しています。
追加された 著者 EJP,
@ Mr.J4mesそれは完全に合法であるf:paramとの h:link です。同じ問題ではありません。
追加された 著者 EJP,
@ Mr.J4mesそれがこの質問の存在理由です。
追加された 著者 EJP,

Edzeの答えのように、f:paramを入れ子にしたh:outputLinkまたはh:リンクを使用してください。

しかし、review.xhtmlでは、name = "myId"のf:viewParamとreview.xhtmlのバッキングBeanへの値バインディングを使用します。

f:viewParamはステートフルなコンポーネントであり、バッキングBeanがリクエストスコープであっても、後続のリクエスト間の値を記憶します。さらに、f:viewParamを使用すると、通常のJSFバリデータを使用できます。

BalusCの「JSF 2でのコミュニケーション」の記事のためのGoogleの記事。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript