Как вызвать метод контроллера Java из JSP с помощью AJAX - PullRequest
0 голосов
/ 22 октября 2018

Я реализовал другое решение этой проблемы, но я не могу получить доступ к методу контроллера из JSP. Некоторые решения, которые я использовал, следующие:

<script type="text/javascript">
var entryId = arguments[0]; 
function callMetod()
    {
   <%!public void clickBtn() {
    ControllerJSP controller = new ControllerJSP();
    controller.likePicture();
    }%>

    }
    </script>

решение 2 -

<script type="text/javascript">
var entryId = arguments[0]; 
function callMetod()
{
    var entryId = arguments[0]
    $.post( "../controllerJSP/LikePicture", {eid: 232 })
    .done(function( data ) {
    alert( "Data Loaded: " + data );
 });
 </script>

Решение три, которое я могу реализовать, это

 <script type="text/javascript">
 function callMetod()
 {
      `
         var f={};
                var response = "4292";              
                f.url = "../controllerJSP/LikePicture";
                f.type = "POST";
                f.dataType = "json";
                f.data={eId:entryId};
                f.contentType = "application/json";
                f.success = function (entryId) {
                    console.log(json)

                    alert("success");
                };

                f.error = function (){
                    alert("failed");
                };

                $.ajax(f);
                alert("run")
 }
 </script>

, пожалуйста, помогите мне решить эту проблему

1 Ответ

0 голосов
/ 23 октября 2018

я найду решение для вызова метода внутри jsp из контроллера, добавлю сопоставление запроса аннотации и назначу имя, как показано ниже, и вызову эту аннотацию в вашем URL-адресе ajax, как показано ниже

     @RequestMapping("likePicture")
     @ResponseBody
     public void likePicture(@RequestParam("eId") String eId, Map<String, Object>map)
     {
          List<LikeCount> likeCounts = new ArrayList<>();
          likeCounts = dal.getLikeCount(eId);
          SimpleResponseModel srm = new SimpleResponseModel();
          srm = dal.likePicture(eId, "n@n.com");
          dal.updateLikeCount(srm.getMessage(), eId);
          System.out.println(srm.getMessage());
      }

метод ajax isпоказано здесь

    function likeImg(id, votes) 
    {
        var btn = document.getElementById("likeBtn");
        debugger
        $.ajax({

            url : "../likePicture",
            type : "GET",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data : {eId:id, vote:votes},
            success : function(responce) {
                alert("ok")
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...