1

フォームに optiontransferselect がありますが、右リストで選択したアイテムをアクションに戻す方法がわかりません。

訪問したすべての国の ID を含むリストを取得する必要があります。私は自分のアクションリスト(整数)countriesVisitedId;で試しました。しかし、nullPointerException を返します。次に、整数 ID を試しましたが、null が返されます。

これは私が持っているものです:

s:optiontransferselect

              label="Select visited countries"
              name="countriesNotVisitedId"
              leftTitle="Not visited countries"
              rightTitle="Visited Countries"
              list="%{countriesNotVisited}"
              listKey="id"
              listValue="name"
              headerKey="countryNotVisitedId"
              headerValue="--- Please Select ---"

              doubleName="countriesVisitedId"
              doubleList="%{countriesVisited}"
              doubleHeaderKey="countryVisitedId"
              doubleHeaderValue="--- Please Select ---"
              doubleListKey="id"
              doubleListValue="name" />

アクションで訪れた国の整数 ID を含むリストを取得するにはどうすればよいですか?

4

3 に答える 3

1

これが私が試したものです、それはうまくいきます。

ステップ 1: 国を左側から右側に選択する JSP。

<s:optiontransferselect 
 label="Favourite Characters"
 name="leftSide"
 id="left"
 leftTitle="Left Title"
 rightTitle="Right Title"
 list="%{countriesNotVisited)"
 multiple="true"
 headerKey="headerKey"     
 doubleList="{}"
 doubleId="right"
 doubleName="rightSide"
 doubleHeaderKey="doubleHeaderKey"
 doubleMultiple="true" /> 

ステップ 2: 右側からすべてのデータを自動選択する Javascript コード。

 function selectall()
 {
 var list = document.getElementById("right");
 for (var i = 0; i < list.options.length; i++) 
   {
    alert(list.options[i].value)
    list.options[i].selected = true;
   }
 var form = document.getElementById("right");
 form.submit();
      return true;

}

ステップ 3: JSP 側から、送信時にこの関数を呼び出します。

<s:submit id="submitid" value="Submit" action="insert" onclick="selectall()"/>

ステップ 4: アクションで、左右のオブジェクト名の getter と setter が文字列配列ではなく文字列を取るようにします。

private String leftSide;
private String rightSide;

public String getLeftSide() {
    return leftSide;
}

public String getRightSide() {
    return rightSide;
}

public void setRightSide(String rightSide) {
    this.rightSide = rightSide;
}

public void setLeftSide(String leftSide) {
    this.leftSide = leftSide;
}

アクションで値を出力しようとすると、次の値が得られます。

System.out.println("right side list " + ad.getRightSide());
于 2009-09-24T09:16:41.030 に答える
1

私は自分が間違ったことをしているのだろうかと思いながら、壁に頭をぶつけていました。とてもシンプルです

doubleName="fields" は、返されるタグ フィールドです。

public void setFields(String fields) { これはアクション クラスに必要なものです。

私が気付いていなかったのは、送り返すために要素を選択する必要があるということです。または、ヘッダーで ajax を使用するだけです

于 2009-10-13T09:48:05.193 に答える
0

あなたの行動で:

 public void setCountriesVisitedId(String[] countriesVisitedId) {
    this.countriesVisitedId = countriesVisitedId;
 }
于 2009-04-21T15:33:51.353 に答える