使用Spring MVC将值从AJAX传递到控制器

时间:2018-09-26 09:21:50

标签: javascript java jquery ajax spring

这是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

如果我单击“名称”即<li>标签。它将显示从MySQL到JSP的详细信息

3 个答案:

答案 0 :(得分:1)

将您的JavaScript代码更改为:

gt ge lt le eq ne

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

substr $dt, 0, 4

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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