2012-04-03 6 views
0
私は

Struts2の<S:doubleselect>

country String[] countryArray = ServletRequest.getParameterValues("country"); 

を取得しようとしましたアクションで

<s:doubleselect id="countryId1" name="country"  list="countriesMap.keySet()" doubleId="cityId1"          doubleName="city" doubleList="countriesMap.get(top)" /> 

<s:doubleselect id="countryId2" name="country"  list="countriesMap.keySet()" doubleId="cityId2"          doubleName="city" doubleList="countriesMap.get(top)" /> 

同じ名前が、異なるIDを持つ彼ら二tags.Bothを使用しています。しかし、私はcountryArray = nullを取得しています

。私は、ページのコードを見て、私は値USAを選択し、このような状況

<select name="country" id="countryId1" onchange="countryId1Redirect(this.options.selectedIndex)"> 
    <option value="USA">USA</option> 
    <option value="Germany">Germany</option> 
</select> 

を見つけましたが、何のselected='selected'プロパティがありません。

<select name...から選択した値をアレイに挿入するにはどうすればよいですか?

+0

を忘れないでくださいそれが役に立ったら答えを受け入れる。 :) –

答えて

1

同じ名前の要素から値のリストを取得するには、名前に一致するgetterとsetterを作成します。例えば:

public class MyAction extends ActionSupport { 

    private List<String> countries; 
    private List<String> cities; 

    public String execute() { 

     if (getCountry() != null && getCity() != null) { 
      for (int i = 0; i < getCountry().size(); i++) { 
       System.out.println("country"+(i+1)+"="+getCountry().get(i)); 
       System.out.println("city"+(i+1)+"="+getCity().get(i)); 
      } 
     } 

     return SUCCESS; 
    } 

    // setCountry matches country 
    public void setCountry(List<String> countries) { 
     this.countries = countries; 
    } 
    public List<String> getCountry() { 
     return countries; 
    } 

    // setCity matches city 
    public void setCity(List<String> cities) { 
     this.cities = cities; 
    } 
    public List<String> getCity() { 
     return cities; 
    } 

} 

私はあなたが好きなら、あなたがString[]代わりのList<String>を使用することができると信じています。

私は、現時点ではこれをテストするための方法を持っていませんが、反復インデックス、このような可能性が何かを得るために、状態変数のインデックスプロパティを使用することができます。

<s:iterator value="country" status="stat"> 
    <s:property /> <!-- the country --> 
    <br /> 
    <s:property value="#city[#stat.index]" /> <!-- the city corresponding to the current country --> 
    <br /> 
    <br /> 
</s:iterator> 
+0

gettersとsettersは動作しません XWorkList形式でデータを返します。 – zhake