Заставить ссылку выполнить jquery с Java в JSP - PullRequest
0 голосов
/ 03 мая 2011

Создание системы с моей группой в школе и проблема с выяснением, как это сделать ...

У меня есть таблица, я получил JSP для заполнения некоторыми данными, используя цикл for.

Каждый из данных в ячейках таблицы представляет объект, используя силу JPA.У них, конечно, есть свои id.

В нашем Java-коде мы хотим иметь возможность завершить задачу, используя метод, который мы назвали setDone(true).

Как это можно сделать визуально на странице JSP?Я догадывался, что Jquery / ajax - это способ сделать это.

Надеюсь, это имеет смысл.Здесь вы можете увидеть кнопки галочки / снятия галочки.enter image description here

РЕДАКТИРОВАТЬ:

Вот так выглядит мой код HTML / JSP:

">"> ">">

И этоэто jquery:

$(function() {
            $('#done').click(function() {
                $.post("servletUri", {id: idParam, done: doneParam}, function() {
                     $("doneImage-id").attr("src", correction-done.png);
                });
            });
        });

Но я все еще новичок в jquery, поэтому я понятия не имею, как это реализовать.

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Вы можете сделать вызов с помощью jQuery, но вам нужно что-то, чтобы «ответить» на этот вызов и фактически обновить базу данных с помощью JPA. Обычно вы используете какой-то тип MVC-фреймворка, например Spring MVC или Struts, но вы также можете использовать и простой сервлет.

Подведем итог:

  1. Добавьте обработчик щелчков jQuery к контрольному образу, который отправляет запрос сервлету (с идентификатором или индексом задачи).
  2. Загрузите объект JPA в сервлет или контроллер, вызовите setDone и обновите.
  3. Измените проверочное изображение, используя jQuery соответствующим образом.
1 голос
/ 03 мая 2011

Да, jquery - хороший вариант.Вот несколько основных шагов:

  • <img id="doneImage-${row.id}" onclick="setDone('${row.id}', ${!row.done})" /> в цикле foreach.
  • функция javascript setDone должна вызывать сервлет через ajax

    $.post("servletUri", {id: idParam, done: doneParam}, function() { 
         $("doneImage-id").attr("src", ...); // set here the new image
    };
    

Это приведет к тому, что каждая строка будет вызывать функцию setDone с другим параметром id, чтобы он знал, какую строку вы щелкнули.

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