【问题标题】:Using jQuery/javascript to submit/POST to Spring controller without hidden input使用 jQuery/javascript 在没有隐藏输入的情况下向 Spring 控制器提交/POST
【发布时间】:2015-07-30 13:00:36
【问题描述】:

我想知道是否可以在不使用隐藏输入字段的情况下使用 javascript/jQuery 使用 Spring 参数提交/POST 请求映射。我查看了其他答案,例如使用 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);
}

我尝试了几种不同的方法,但到目前为止都没有成功。就像用onchange=""$(#formId).attr('name', 'copy').submit();name="copy" 添加到form:select

【问题讨论】:

  • 经过大量研究后,我认为这是不可能的。相反,我只是依赖于使用提交,每种类型的提交都有一个@RequestMapping。如果其他人有其他反馈,我将把它打开一段时间。否则我会发布我的答案。

标签: javascript jquery html spring forms


【解决方案1】:

我做了相当多的研究,但找不到使用 javascript 通过 Spring 参数提交/POST 的方法。相反,我只是在 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2015-12-27
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多