1

我在让 jsp 正确呈现时遇到问题。我的选择标签上的路径似乎是罪魁祸首,但我无法追踪,不知道为什么。

我收到错误消息:错误 500:java.lang.IllegalStateException:Bean 名称“命令”的 BindingResult 和普通目标对象都不能用作请求属性

我的代码是:

控制器.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;
}

查看.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;
4

2 回答 2

3

你错过了两件事,

  • 支持 bean 必须在某个时候实际添加到 ModelMap 中,所以你需要一个map.addAttribute("analyticFormBean", new AnalyticFormBean())(或者你想要添加到它的任何初始值等)

  • 您必须告诉表单标签支持对象的名称<form:form commandName="analyticFormBean" etc>

于 2013-02-28T23:20:09.313 回答
0

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

<form:form commandName="analyticFormBean" .......>
于 2013-03-01T03:03:04.467 回答