Вы спрашивали о концептуальной идее возможного решения.Я постараюсь кратко описать возможный способ.Как я понял из вашего предыдущего вопроса, вы новичок в JavaScript и jQuery.Поэтому я пытаюсь написать простое и понятное описание архитектуры решения.
Ваше веб-приложение может состоять из страниц в чистом HTML или XHTML (без страниц JSP) с загруженными файлами Javascript и запущенными <script type="text/javascript" src="..."></script>
.Вы помещаете разметку HTML / XHTML в свои файлы * .htm, а определение jqGrid - в файлы * .js.
jqGrid имеет три важных параметра mtype
, которые обычно представляют собой «GET» или «POST», datatype
с такими значениями, как "xml" или "json" и url
параметр.Эти три параметра определяют, как будет заполнена сетка.Также editurl
cwich используются для операций CRUD.Таким образом, вы можете реализовать сервлет в Java (см., Например, Как изучать AJAX с использованием jQuery в веб-приложении Java ), который может быть единственным активным компонентом в вашем решении, привязанным к URL-адресу, определенному url
и editurl
и поддержка HTTP GET или POST зависит от вашего mtype
выбора.Он будет работать как веб-сервис, предоставляющий данные для jqGrids и реализующий все операции CRUD.
jqGrid отправит сервлету некоторые стандартные параметры.Имена этих входных параметров сервлета вы можете изменить с помощью prmNames
параметра jqGrid (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options).. Наиболее важными параметрами метода сервлета являются следующие int page, int rows, string sidx, string sord
. Дополнительные параметры также могут быть bool _search, string searchField, string searchOper, string searchString
, еслиВы хотите использовать одиночный поиск в th jqGrid или bool _search, string filters
в случае расширенного поиска . Таким образом, пользователь нажимает кнопку jqGrid «следующая страница» или щелкает заголовок столбца сетки.чтобы отсортировать данные, ваш сервлет будет вызван jqGrid с соответствующими значениями параметров ввода.
Если у вас есть четкая структура вашего решения. Я не уверен, что вам понадобится DWR. Просто попробуйтечтобы узнать, как вы можете использовать jQuery.ajax
для вызова ваших Java-сервлетов. Если у вас возникнут проблемы с реализацией той же техники внутри jqGrid, вы можете настроить jQuery.ajax-запросы, которые будут отправлены jqGrid с параметром ajaxGridOptions
jqGrid.можно также использовать serializeGridData
событие jqGrid (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events#list_of_events) для реализации любого преобразования данных доданные будут отправлены сервлету и использовать jsonReader или xmlReader (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data), которые определяют, как данные, возвращаемые с сервера, должны считываться jqGrid.