【发布时间】:2013-02-28 22:54:11
【问题描述】:
我在让 jsp 正确呈现时遇到问题。我的选择标签上的路径似乎是罪魁祸首,但我无法追踪,不知道为什么。
我收到错误:错误 500:java.lang.IllegalStateException:Bean 名称“命令”的 BindingResult 和普通目标对象都不能用作请求属性
我的代码是:
Controller.java
@Controller
@RequestMapping("view")
@SessionAttributes({"analyticFormBean"})
public class RolesAnalyticsController {
@RenderMapping
public String defaultRenderer(RenderRequest request, RenderResponse response, ModelMap map){
logger.entering(SOURCE_CLASS, "defaultRenderer");
request.setAttribute("reportList", getReportList());
logger.exiting(SOURCE_CLASS, "defaultRenderer", VIEW_JSP);
return VIEW_JSP;
}
View.jsp
<form:form id="reportForm" method="POST" action="${submitReportQuery}">
<form:select path="query" id="reportSelection" onchange="javascript:checkForFields()">
<form:option value="NONE" label="--- Select ---"/>
<form:options items="${reportList}" />
</form:select>
<input type="submit" value="Submit" name="Submit" ><br>
<div class="fieldPlaceholder" id="fieldPlaceholder"></div>
Bean.java
public class AnalyticFormBean {
private int reportID;
private String query;
private String queryResult;
private String[] listOfQueries;
【问题讨论】:
-
是整个控制器吗?您实际上需要在某个时候将 AnalyticFormBean 放入模型图中。
-
是的。我必须这样做吗:map.addAttribute(bean); ?
-
map.addAttribute("analyticFormBean", bean) 如果你想让你的@SessionAttributes 做任何事情。
-
我添加了以下内容,但这仍然没有帮助。 AnalyticFormBean bean = new AnalyticFormBean(); bean.setListOfQueries(new String[]{}); bean.setQuery(""); bean.setReportID(0); bean.setQueryResult(""); map.addAttribute("analyticFormBean", bean);
-
form:form 标签需要 commandName="analyticFormBean"
标签: java spring jsp spring-mvc