1

Java と Springs フレームワークは初めてです。これは、n00b によって策定された私の質問です (2 年生のように聞こえる場合は申し訳ありません)。選択ドロップダウンをフォームに表示して、選択可能な国のリストを表示しようとしています。データは MySQL テーブルに格納され、国名を含む単一の列が含まれています。私は明らかに何か間違ったことをしています。欠けている単純なものが原因の単なるエラーであることを願っています。助けてくれてありがとう。

WebFlowを使用しています。フロー XML には次のものがあります。

<on-start>
  <evaluate expression="flowControllerActions.retrieveMBSAddressInfo()" result="address" />
  <evaluate expression="flowControllerActions.retrieveCountryInfo()" 
       result="flowScope.countryListing" />
</on-start>

retrieveCountryInfo() は次のようになります。

public Map<String, String> retrieveCountryInfo() throws IOException {
    LOGGER.debug("inside retrieveMBSAddressInfo");
    Map<String, String> countryInfo = (Map<String, String>) coaService.getCountryInfo();
    return countryInfo;
}

coaService.getCountryInfo() は次のようになります。

   public Map<String, String> getCountryInfo() {
        ArrayList <Country> cList = coaDao.getSelectableCountries();
        LinkedHashMap<String, String> retval = new LinkedHashMap<String, String>();
        for ( Country c : cList){
            retval.put(c.getName(), c.getName());
            log.debug(c.getName());
        }
        return retval;
    }

coaDao.getSelectableCountries()は、リストを次のように設定します。

@SuppressWarnings("unchecked")
@Transactional(readOnly=true, propagation=Propagation.REQUIRED)
public ArrayList<Country> getSelectableCountries() {
    String myLike = "%";

    Session mySession = sessionFactory.getCurrentSession();

    ArrayList<Country> countries = (ArrayList<Country>) mySession
        .createCriteria(Country.class)
            .add(Restrictions.like("name", myLike)).list();

    return countries;
}

最後に、JSP ページは select 要素を次のようにレンダリングしようとします。

<td>
    <form:select path="country" id="country">
        <form:options items="${countryListing}"/>
    </form:select>
</td>
4

1 に答える 1

0

よくわかりませんが、このようなことを試してみてください。

<td>
<form:select path="country" id="country">
    <c:forEach items="${countryListing}" var="countryMap" varStatus="status">
    <option value="${countryMap.key}">${countryMap.value}</option>
</c:forEach>
</form:select>

これがうまくいくことを願っています!:)

于 2012-12-07T12:39:11.583 に答える