0

jsf ページをロードする直前に、Web サービス (メソッド) 呼び出しを実行する必要があります。この呼び出しは、jsf ページに表示する必要がある入力フィールドのリストを返します。ユーザーはフォームに入力でき、次のクリックで、フォームに入力された値を別の Web サービス (メソッド) に送り返す必要があります。私のアプローチは、jsfページのリクエストスコープのBean(空白のフォームとBeanへのバインディングで構成される)を用意し、フォームメソッドのセッターメソッドでWebサービス呼び出しを実行し、UIInputフィールドを動的に作成することでした

//call web service
//Loop
    UIInput input = new HtmlInputText();
    //set unique Id
    form.getChildren().add(input);
//End Loop

入力フィールドは作成されますが、ブラウザーを元に戻すか更新すると、入力フィールドが追加され続けます。したがって、明らかに私のアプローチは間違っています。
また、送信アクションでこれらの動的に作成された入力フィールドの値を取得しようとすると、

List<UIComponent> dynamicFields = form.getChildren();
 for(int i=0;i<form.getChildCount();i++){   
     if("javax.faces.Input".equals(componentFamily)){
        UIInput input = (UIInput)dynamicFields.get(i);
        System.out.println("Input Field: ID = "+input.getId() + " , Value="+ input.getValue());
      }
 }

フィールドの ID は適切に出力されますが、値は常に null です。明らかにそれはすべて間違っています。

いつ、どの時点でフィールドを作成し、それらの値を取得する方法を教えてください PS Am JSF 2.0、Jdeveloper、Glassfish、および/またはWeblogic Serverを使用しています

4

2 に答える 2