【问题标题】:Pass value from AJAX to Controller using Spring MVC使用 Spring MVC 将值从 AJAX 传递到控制器
【发布时间】:2018-09-26 09:21:49
【问题描述】:

这是html代码

  <ul id="myUL">
    <c:forEach var="userBean" items="${list}">   
    <li id="username"><a href="#">${userBean.username}</a></li>
    </c:forEach>  
    </ul>
<div class="card">
<p>${userBean.phoneno}</p>
<p>${userBean.Address}</p>
</div>

这是 AJAX

<script>
  $("#myUL").click(function(){
      var username=$('#username').val();
      $.ajax({
            url: "details",
            type: 'GET',
            data: {username:username},
            success: function(data){
                   $("#card").html(data);
         }

      });
  });
  </script>

这是控制器代码

@RequestMapping(value="details", method = RequestMethod.POST)
    @ResponseBody
    public ModelAndView details(@RequestParam UserBean userBean, HttpServletRequest request, HttpServletResponse response)
    {
        ModelAndView view = new ModelAndView();
        String username=userBean.getUsername();
        if(retrieveService.getdetail(userBean)!= null)
        {
            view.setViewName("welcomes");
        }
        return null;

    }

我不知道如何将值从 AJAX 传递到控制器。 这是示例输出

Name                  Details
john                  john
smith                 phoneno. 324242
                      Address:xyz

如果我点击名称,即&lt;li&gt; 标签。它将显示从 MySQL 到 JSP 的详细信息

【问题讨论】:

    标签: javascript java jquery ajax spring


    【解决方案1】:

    将您的 JavaScript 代码更改为:

    <script>
        $("#myUL").click(function(){
            var username=$('#username').val();
            $.ajax({
                url: "details",
                type: 'POST',
                data: {username:username},
                success: function(data) {
                             $("#card").html(data);
                }
            });
        });
    </script>
    

    并将您的控制器代码更改为:

    @PostMapping(value = "details")
        public ModelAndView details(@RequestBody UserBean userBean, HttpServletRequest request,
                HttpServletResponse response) {
    
            ModelAndView view = new ModelAndView();
            String username = userBean.getUsername();
    
            if (retrieveService.getdetail(userBean) != null) {
                view.setViewName("welcomes");
            }
    
        return view;
    }
    

    【讨论】:

      【解决方案2】:

      您正在向接收 POST 请求的控制器发送 GET 请求?

      【讨论】:

        【解决方案3】:

        您还应该使用@RequestBody 而不是@RequestParam,因为它是一个 POST,并且您在正文中而不是在 url 中发送数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-19
          • 1970-01-01
          • 2013-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多