如何使用Spring在表单上创建一个选择框

时间:2012-12-06 17:49:33

标签: java spring dojo spring-webflow

我是Java和Springs框架的新手。这是我的问题,由n00b制定(对不起,如果我听起来像二年级学生)。我正在尝试选择下拉列表以显示在我的表单上,其中包含可选择的国家/地区列表。数据存储在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>

1 个答案:

答案 0 :(得分: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>

我希望这有效! :)