我正在努力将动态Web项目从Spring 3.0.6迁移到3.2.3。在此迁移之前,我们的下拉菜单没有问题。但是,迁移后,我们收到以下错误:
Exception created : com.ibm.websphere.servlet.error.ServletErrorReport: javax.servlet.jsp.JspException: Type [java.lang.String] is not valid for option items
我已删除所有代码以隔离问题,因此以下是相关代码。如果需要任何进一步的信息,请告诉我。令我困惑的是,List甚至不是基于String
的。我意识到JSP会将值视为String
的选项,但我的理解是有一个内置的PropertyEditor
可以执行此转换。
控制器:
@RequestMapping("/reports-menu.html")
public String showReportsHome(@ModelAttribute("reportForm")ReportForm reportForm, Model model, HttpSession session, HttpServletResponse response, HttpServletRequest request) {
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
model.addAttribute("intList", intList);
return "reports-home-int";
}
JSP:
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<%@ taglib uri="/WEB-INF/tld/fmt.tld" prefix="fmt" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="/WEB-INF/tld/sbp.tld" prefix="sbp" %>
<form:form name="report_form" method="POST" modelAttribute="reportForm" action="reports-menu.html" id="report_form">
<form:hidden path="download" id="form_download"/>
<form:hidden path="sortDirection" />
<form:hidden path="sortBy"/>
<input type="hidden" name="reset"/>
<div align="left">
<table border="0">
<tr>
<td><b>Mailer Name</b></td>
<td>
<form:select path="mailerCond">
<form:options items="${intList}" />
</form:select>
</td>
</tr>
</table>
</div>
</form:form>