Передать значение из AJAX в контроллер с помощью Spring MVC - PullRequest
0 голосов
/ 26 сентября 2018

Это 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 голосов
/ 26 сентября 2018

Вы должны также использовать @RequestBody вместо @RequestParam, поскольку это POST, и вы отправляете данные в теле, а не в URL.

0 голосов
/ 26 сентября 2018

Измените код 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;
}
0 голосов
/ 26 сентября 2018

Вы отправляете запрос GET контроллеру, который получает запрос POST?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...