【问题标题】:I want to call the controller of SpringMVC with Ajax when I click the radio button当我单击单选按钮时,我想用 Ajax 调用 Spring MVC 的控制器
【发布时间】:2018-01-18 07:56:49
【问题描述】:

例如,如果我选择单选按钮 1 并按下提交按钮,我想调用控制器 1,选择单选按钮 2,然后按按钮 2 调用控制器 2。

以下是我尝试过的方法。首先有两个控制器。

@RequestMapping(value="/ynto10", method=RequestMethod.POST)
public String ynto10(HttpServletRequest req, HttpServletResponse res) {

    String[] columns = req.getParameterValues("chkValue");
    System.out.println(columns.length);
    analyticsService.ynTo10(columns);

    return "redirect:/analytics/info/1";
}


@RequestMapping(value="/nulltoN", method=RequestMethod.POST)
public String nulltoN(HttpServletRequest req) {

    String[] columns = req.getParameterValues("chkColnames");
    analyticsService.nullToN(columns);

    return "redirect:/analytics/info/1";
}

这是尝试根据单选按钮选择使用 ajax 调用控制器。

$('#convert').click(function() {
    var chkVal = [];
    $('input[name=chkColnames]:checked').each(function() {
        chkVal = $(this).val();
    });

        if($('#ynTo10:selected')) {
          $.ajax({
              type: 'POST',
              url: 'http://localhost:8080/destiny/ynto10',
              data: {
                  chkValue : chkVal
              },
              dataType: 'json',
              success: alert('변환 OK'),


          })
      }else if($('#nullToN:selected')) {
          $.ajax({
              type: 'POST',
              url: 'http://localhost:8080/destiny/nulltoN',
              data: {
                  chkValue : chkVal
              },
              dataType: 'json',
              success: alert('변환 OK'),

          })
      }

我想在名为 chkVal 的变量中添加一个复选框。如果你能给我这部分,我将不胜感激。祝你有美好的一天。

【问题讨论】:

  • 你有什么错误?
  • 首先,ajax无法运行控制器。而且我必须传递数据 chkValue 并将其保存在控制器中称为列的变量中。即使我在复选框中勾选了3,你也只输入了一个。

标签: javascript jquery html ajax spring-mvc


【解决方案1】:

您需要将数据推送到数组以获取所有选定的值

$('input[name=chkColnames]:checked').each(function() {
        chkVal.push($(this).val());
 });

第二个你不能直接从 ajaxed 页面重定向,

在你的ajax调用成功函数中使用js重定向

success: function(data) {
window.location = "/analytics/info/1";
}

或者最好放弃ajax并使用简单的get请求

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 2018-05-15
    • 1970-01-01
    • 2018-08-24
    • 2021-08-16
    • 2013-10-03
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多