弹簧形式上的路径选择不起作用

时间:2013-02-28 22:54:11

标签: java spring jsp spring-mvc

我遇到了让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>

&nbsp;
<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;

2 个答案:

答案 0 :(得分:3)

你错过了两件事,

  • 必须在某个时刻将支持bean实际添加到ModelMap中,因此您需要map.addAttribute("analyticFormBean", new AnalyticFormBean())(或者您想要添加到其中的任何初始值等)

    < / LI>
  • 您必须告诉表单标记后备对象的名称<form:form commandName="analyticFormBean" etc>

答案 1 :(得分:0)

我没有看到你在表单中使用bean ...你需要将它添加到表单中。

<form:form commandName="analyticFormBean" .......>