Java 控制器内未接收到参数
我尝试发送一个参数applicationNo包装在我的表单标记中。输入中的数据通过javascript代码段生成。我需要将此数据传递给我的控制器,但它总是抛出空指针异常,我无法找出问题所在 因此,请建议我实现目标的最佳方法。我还附上了所需的源代码和快照 我想发送下面屏幕截图中红色区域突出显示的数据 JSP代码: 此方法将打开jsp,我需要在其中提取该应用程序否Java 控制器内未接收到参数,java,spring,nullpointerexception,Java,Spring,Nullpointerexception,我尝试发送一个参数applicationNo包装在我的表单标记中。输入中的数据通过javascript代码段生成。我需要将此数据传递给我的控制器,但它总是抛出空指针异常,我无法找出问题所在 因此,请建议我实现目标的最佳方法。我还附上了所需的源代码和快照 我想发送下面屏幕截图中红色区域突出显示的数据 JSP代码: 此方法将打开jsp,我需要在其中提取该应用程序否 同意,但我想知道为什么我不能使用输入标记的name属性?为什么这不起作用?实际上Javascript函数对id起作用。对于名称,您需要
同意,但我想知道为什么我不能使用输入标记的name属性?为什么这不起作用?实际上Javascript函数对id起作用。对于名称,您需要将其与document一起编写。准备好了var x=document.getElementsByNamefname这样的语法。因此,我们更喜欢使用IDT感谢您的快速响应和有价值的建议,它50%解决了我的问题,现在,这在动态行创建中不起作用。实际上,我编写了Js函数,它将动态生成行,我附加了隐藏的输入字段,但现在该值不会设置在隐藏字段中。它只适用于JSP隐藏字段。如果您需要源代码,请让我知道我会尽快编辑我的问题。请提供代码,因为JS不允许隐藏字段
<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>
@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;
}
@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;
}
<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