我想知道是否可以使用javascript / jQuery在不使用隐藏输入字段的情况下使用Spring参数提交/ POST请求MAPMapping。我已经查看了其他答案,例如使用javascript添加隐藏字段,但如果可能的话,我想完全避免这种情况。我提交的jsp看起来如下,但不完全是,我修改了变量名等等。
<form:select class="selectpicker" title="Copy" data-style="btn-success" path="copy" onchange="$('#formId').submit()" data-width="35%">
<form:option value="0">Copy To This</form:option>
<form:option value="1">Copy To Other</form:option>
</form:select>
这就是我要去的RequestMapping。
@RequestMapping(params="copy", method = RequestMethod.POST)
public ModelAndView copy(@ModelAttribute("SpringWeb") Object object) throws SQLException{
// code here
return new ModelAndView("form", "command", object);
}
我尝试了几种不同的东西,但到目前为止还没有成功。就像使用name="copy"
将form:select
添加到onchange=""$(#formId).attr('name', 'copy').submit();
。
答案 0 :(得分:0)
我进行了大量的研究,但是找不到使用javascript来提交/ POST Spring参数的方法。相反,我只使用了requestMappings的不同提交。见下面的例子。
<div class="dropdown inline-div">
<button name="copy" class="btn btn-success dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">Copy<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a><input type="submit" name="copy1" value="Copy To 1"></a></li>
<li><a><input type="submit" name="copy2" value="Copy to 2"></a></li>
<li><a><input type="submit" name="copy3" value="Copy to 3"></a></li>
<li><a><input type="submit" name="copy4" value="Copy to 4"></a></li>
</ul></div>
对每个名称使用这样的请求映射:
@RequestMapping(params="copy1", method = RequestMethod.POST)
public ModelAndView copyToQ1(@ModelAttribute("SpringWeb") Object object) throws SQLException{
String id = object.getQuarterDetails().get(FINAL_1).getQuarter().getqId();
if(copyItems(object, id)){
logger.info("Items successfully copied for user: " + object.getPerson());
} else {
logger.error("Items have not been copied for user: " + object.getPerson());
}
object = service.loadForm(object.getEmployee());
return new ModelAndView("form", "command", object);
}