Spring MVC获取的元素值不是服务器上的对象属性

时间:2013-05-01 20:53:49

标签: java spring jsp spring-mvc

我有一个使用spring标签lib的jsp页面。我的页面上有元素绑定到对象的属性。我也有没有绑定到POJO的按钮值我试图在服务器上获取这些值。下面是代码

JSP

<body>
    <form:form id="monitoringList" name="monitoringList" commandName="monitoring">
    <h3>Monitoring For Criminals Victims/Wittiness</h3>
        <h3>Crime Record - ${crimeRecNo}</h3>       

        <div id="victims">
        <h3>Victims</h3>
        <hr>
            <input type="hidden" id="records" value="${records}"/>



            <div id="citizen_row">          

            <label class="name"></label>

            <form:input class="citizen" type="hidden" name="socialSecurityNumber" path="socialSecurityNumber"/>

            <table border="1">          

            <tr>

            <td><form:input type="hidden" path="crimeRecNo" name = "crimeRecNo"/>
            <canvas id="photoCvs${citizen.socialSecurityNumber}" class="canvas" height="200" width="200"></canvas></td>
            <td><label>Start Date : </label><form:input name= "monitoringStDate" path="monitoringStDate" id="monitoringStDate"/></td>
            <td><label>End Date : </label><form:input name="monitoringEndDate" path="monitoringEndDate" id="monitoringEndDate"/></td>
            <td>
            <label>Monitoring Type : </label>
                <form:select path="monitoringTypeId" name="monitoringTypeId" id="monitoringTypeId" title="Monitoring Type">
                    <form:options items="${monitoringType.monitoringTypeList}" itemValue="monitoringTypeId" itemLabel="monitoringTypeDesc" />
                </form:select>              
            </td>
            </tr>

            </table>

            <div><button id="action" onclick="submitPage('${pageContext.request.contextPath}/monitoringList.htm','POST');" type="button">Create Monitoring Records</button></div>

            </div>

            <!-- MySql first record starts at 0. So we need to send in the value 0 to get the first record. Create Record Navigation based on record count -->
            <div id= "recordNavigation">
            <c:forEach begin="0" end="${records - 1}" var="i"> 
                <input type="submit" class="navigationbtns" id="page" onclick="submitPage('${pageContext.request.contextPath}/monitoringList.htm','POST');" value="${i}"/>
            </c:forEach>
            </div>

        </div>

    </form:form>
</body>

这是控制器,我使用request.getParameter来获取按钮的值,但是当我点击将我发送到服务器的按钮时,值id为null

控制器

@RequestMapping(value = "monitoringList.htm", method = RequestMethod.POST)
public ModelAndView handleNextMonitoringPage(@ModelAttribute("crimeRecNo")Integer crimeRecNo, Model model,@ModelAttribute Monitoring monitoring, BindingResult result,ModelMap m,HttpServletRequest request,SessionStatus status, HttpSession session) throws Exception {

    String p_page = request.getParameter("page");
    logger.info("Page request was ::" + p_page);
    //int page = 0;

myMonitoringTypeList.put("monitoringTypeList",this.monitoringTypeManager.getListOfMonitoringType());

     model.addAttribute("monitoringType",myMonitoringTypeList);
     Monitoring aMonitoringRecord = new Monitoring();

aMonitoringRecord = this.monitoringManager.getAMonitoringRecByCrimeRecNo(crimeRecNo, page);
int recordCount = this.monitoringManager.MonitoringRecords_RecordCount(crimeRecNo);

     model.addAttribute("records",recordCount);
     model.addAttribute("crimeRecNo", crimeRecNo);
     model.addAttribute("monitoring", aMonitoringRecord);           

    return new ModelAndView(new RedirectView("monitoringList.htm"),"page",page); 

}

1 个答案:

答案 0 :(得分:1)

您缺少提交值的名称属性

<button name="page" ....>

<input type="submit" name="page" ..../>