0

こんにちは、たくさん検索しましたが、欲しいものが見つかりませんでした。

ここにシナリオがあります

私のjspには、イテレータを介してロードされているテーブルがありますArrayList<Report>

レポートには、パラメーター、観察、設計の 3 つの属性があります。

JSP では、イテレータを介して最初と 3 番目の列の値を表示します

<s:iterator value="ReportList" status="status" var="obj">
   <tr>
      <td><s:property value="%{#obj.parameter}" /></td>
      <td><s:textfield theme="simple" name="valOfSim" /></td>
      <td><s:property value="%{#obj.designed}" /></td>
   </tr>
</s:iterator>
Parameter           observation                designed
X                                                10
y                                                11
Z                                                12

ここで、入力された 2 番目の値を取得する必要があります。

編集:私のコード

ArrayList<Obj>最初に preload メソッドが呼び出され、値が事前入力され、ユーザーが観察のために値を入力し、これを介してそれをキャプチャすることを説明しましょう。

<td><s:textfield theme="simple" name="obj[%{#status.index}].observation" /></td>

その後、アクション クラスの送信メソッドが呼び出されると、送信ボタンが表示されます。

ユーザーが入力した値を出力します(ここではNULLを取得しています)

import mypro.web.utility.SpringServiceLocator;

public class myAction extends ActionSupport implements      
ModelDriven,SessionAware,ServletRequestAware,Preparable  {
private Map<String, Object> session;
private Model  model = new Model();

public void prepare()
{

            Obj obj = new Obj();
    Obj obj2 = new Obj();
    Obj obj3 = new Obj();

    obj.setDesigned("10");
    obj.setParameter("X");
    model.getReportList().add(obj1);


    obj.setDesigned("11");
    obj.setParameter("y");
    model.getReportList().add(obj2);

            obj.setDesigned("12");
    obj.setParameter("Z");
    model.getReportList().add(obj3);
   }



  public String preload()
   {

  return "success";
   }


  public String submit()
   {


  System.out.println("------------------------------------------------------  
  &&&&&&&&&:"+model.getReportList().size());
    for(Obj obj : model.getReportList)
    {
        System.out.println("the value is to be checked"+obj.getObservation());//value which will be entered by user
        System.out.println("the value is to be checked"+obj.getRefcode()); //value which was added in the prepare method
    }



        return "success";
      } 





       public Object getModel() {

    return model;
}
4

1 に答える 1

1

これを変える:

<s:textfield theme="simple" name="valOfSim" />

これに:

<s:textfield theme="simple" name="obj[%{#status.index}].observation" value="" />

この意志

  1. observationテキストフィールドをobj要素 のフィールドにバインドします。
  2. 行番号を保持します。
  3. 表示された値を空に設定します(理由はわかりませんが、これが必要な場合...)

このように、アクションにsetterobj 要素 (ゲッターだけでなく) がある場合、反復要素を含むフォームを送信するとobservation、ユーザーが挿入したすべての値が取得されますArrayList<Obj>...

于 2012-11-22T16:28:24.453 に答える