使用jQuery / javascript向Spring控制器提交/ POST,无需隐藏输入

时间:2015-07-30 13:00:37

标签: javascript jquery html spring forms

我想知道是否可以使用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();

1 个答案:

答案 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);
}