1
我一直在試圖找出如何在Spring MVC中創建下拉框。 這裏是我的控制器:Spring MVC下拉框
@ResourceMapping(value = "availableDataVis")
public String getAvailableDataVis(Model model,
@RequestParam("widgetId") String widgetId) {
HashMap<String,Map<String,String>> hashMapOfDataVis = new HashMap<String,Map<String,String>>();
Map<String,String> m = new LinkedHashMap<String,String>();
m.put("pie", "Pie Chart");
m.put("categorizedVertical", "Column Chart");
hashMapOfDataVis.put("m", m);
if (hashMapOfDataVis.containsKey(widgetId))
{
model.addAttribute("dataVisArray", hashMapOfDataVis.get(widgetId));
}
return "selDataVisComboBox";
}
,這裏是JSP頁面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<form:select path="dataVisArray" items="${dataVisArray}" />
實際輸出:
ERROR
Cause: javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'dataVisArray' available as request attribute
Message: org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'dataVisArray' available as request attribute
StackTrace:
javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'dataVisArray' available as request attribute
at org.jboss.portal.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:169)
at org.jboss.portal.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:84)
...
預期輸出:
<select id="dataVis" name="dataVis">
<option value="pie">Pie Chart</option>
<option value="categorizedVertical">Column Chart</option>
</select>
此代碼僅在widgetId請求參數=「m」時纔有效。你檢查過這是真的嗎? – MattR 2012-07-14 13:46:47
是的,確切地說。謝謝。 – abg 2012-07-14 14:32:08