0

2 つのタグを使用しています。どちらも同じ名前ですが、ID が異なります。

<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)" />

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

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

しかし、私は得てcountryArray = nullいます。ページコードを見たらこんな状況だった

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

値USAを選択しましたが、selected='selected'物件がありません。

<select name...それぞれから選択した値を配列に入れるにはどうすればよいですか?

4

1 に答える 1

1

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

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>ます。

現時点ではこれをテストする方法はありませんが、ステータス変数の index プロパティを使用して反復インデックスを取得できます。おそらく次のようになります。

<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> 
于 2012-04-03T21:10:55.317 に答える