我遇到了让jsp正确渲染的问题。我的选择标签上的路径似乎是罪魁祸首,但我无法跟踪不是为什么。
我收到错误:错误500:java.lang.IllegalStateException:BindingResult和bean名称'command'的普通目标对象都不可用作请求属性
我的代码是:
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;
答案 0 :(得分:3)
你错过了两件事,
必须在某个时刻将支持bean实际添加到ModelMap中,因此您需要map.addAttribute("analyticFormBean", new AnalyticFormBean())
(或者您想要添加到其中的任何初始值等)
您必须告诉表单标记后备对象的名称<form:form commandName="analyticFormBean" etc>
答案 1 :(得分:0)
我没有看到你在表单中使用bean ...你需要将它添加到表单中。
<form:form commandName="analyticFormBean" .......>