控制器内部未收到参数

时间:2018-03-19 05:39:54

标签: java spring nullpointerexception

我尝试发送包含在applicationNo标记内的参数form。通过javascript片段生成input内的数据。我需要将这些数据传递给我的控制器,但它总是抛出空指针异常,我无法弄清楚是什么问题。

请善意地告诉我最好的方法。我还附上了所需的源代码和快照。

我想在下面的屏幕截图中发送红色区域中突出显示的数据。

JSP代码:

<form action="${baseURL}view_grp_conn_applications" id="grpCreationForm" method="post" commandName="command" >
                                    <div class="col-sm-12"> 
                                        <table id="addAppTable" class="table table-responsive table-bordered table-striped text-center" id="newField"> 
                                            <thead> 
                                                <tr> 
                                                    <th>#</th> 
                                                    <th>Application No.</th> 
                                                    <th>Name</th> 
                                                    <th>Mobile No.</th> 
                                                    <th>E-mail</th> 

                                                </tr> 
                                            </thead> 
                                            <tbody>
                                                <c:set var="i" value="0"></c:set>
                                                    <tr>
                                                        <td valign="center"><input name="workOrderPostSps[${i}]" id="workOrderPostSps[${i}]" type="checkbox" value="${wo.woPostIdEnc}" onclick="highlightrow(this);" /></td>
                                                    <td align="center"><b><input  onkeypress="show_list('${i}');" id="appNo1${i}"  name="applicationNo" class="form-control start" autocomplete="off"  data-validate="required" required="true" placeholder="press  key on keyboard"/></b></td>
                                                    <td align="left"><span id="appName1${i}"></span></td>
                                                    <td align="left"><span id="appContact${i}"></span></td>
                                                    <td align="left"><span id="email1${i}"></span></td>
                                            </tbody>
                                        </table> 
                                    </div>
                                    <div class="col-md-12">
                                        <input type="submit" class="btn btn-turquoise  pull-right no-margin " name="saveBtn" id="saveBtn" value="Next >>" onclick="myfunction()">
                                    </div>               
                                </form>

JAVA代码: 此方法从我希望发送applicationNo

的位置打开JSP
@RequestMapping(value = "/create_group_connection")
        public ModelAndView createConnection(Model model) {
            ModelAndView mav = new ModelAndView("user/create_group_connection");
            Application application = new Application();
            mav.addObject("command", application);
            return mav;
        }

此方法将打开jsp,我需要提取applicationNo

@RequestMapping(value = "/view_grp_conn_applications", method = RequestMethod.POST)
         public ModelAndView viewApplications(@ModelAttribute("command")Application application,HttpServletRequest request, HttpSession session) {
            ModelAndView mav = new ModelAndView("user/grp_conn_applications");
            try {
                System.out.println("inside view group applications");
                String[] applicationNo = request.getParameterValues("applicationNo");
               System.out.println("inside " + applicationNo[0]);
    //        for (int i = 0; application.length > 0; i++) {
    //            System.out.println("application number is" + application[i]);
    //        }
            } catch (Exception e) {
                System.out.println("Exception occured");
                e.printStackTrace();
            }

            return mav;
        }

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

<td><b><input  onkeypress="show_list('${i}');" id="appNo1${i}"  name="applicationNo" class="form-control start" autocomplete="off"  data-validate="required" required="true" placeholder="press  key on keyboard"/></b></td>


you just use the below instead of above

<input type='hidden' id="applicationNo" name="applicationNo" /></b></td>

you just set the application number using Javascript through id of  hidden field on  any event like onBlur, onKeyPress,Your Controller code is Correct