Я пытаюсь узнать о struts2-jQuery-plugin
, а точнее struts2-jQuery-grid-plugin
. На данный момент я реплицировал учебник, предоставленный разработчиками HERE. Мне удалось отобразить внутри сетки такой простой класс, как Customer
(в их примере), который я могу скрыть от указанной сетки в пределах JSP
и работает прекрасно:Struts 2 доступ к свойствам класса с помощью JQuery Grid
<sjg:grid
id="gridtable"
caption="Customer Examples"
dataType="json"
href="%{remoteurl}"
pager="true"
gridModel="gridModel"
rowList="10,15,20"
rowNum="15"
rownumbers="true">
<sjg:gridColumn name="id" index="id" title="ID" formatter="integer" sortable="false"/>
<sjg:gridColumn name="name" index="name" title="Name" sortable="true"/>
<sjg:gridColumn name="country" index="country" title="Country" sortable="false"/>
<sjg:gridColumn name="city" index="city" title="City" sortable="false"/>
<sjg:gridColumn name="creditLimit" index="creditLimit" title="Credit Limit" formatter="currency" sortable="false"/>
</sjg:grid>
Но вещи начинают усложнять всякий раз, когда я пытаюсь использовать не простой Customer
класса, но другой из моих, например, скажем, класса Reservation
(я отправляю примеры, как я не хочу усложнять вопрос с моим собственным кодом проекта):
public class Reservation {
private Customer customer;
private Car vehicle;
public setCustomer(Customer customer){
this.customer = customer;
}
public setCar(Car vehicle){
this.vehicle = vehicle;
}
}
So Как мне получить доступ к свойствам/полям внутри Клиента, который также находится в Резервации? Исходя из Struts2 и использования <s:property />
тегов перед использованием этого плагина Jquery, я пытался сделать так, как это, так как сетка внутри JSP
получает JSON, содержащий все данные:
<sjg:gridColumn name="customer.city" index="city" title="City" sortable="false"/>
Но это не работает поскольку мои столбцы сетки показывают пусто.
Также можно ли применить любое выражение OGNL к отображаемым полям? Предположим, что я хочу загладить содержимое столбца, прежде чем я начну использовать jQuery Grid, я смог бы управлять этим, применив .toUpperCase()
к свойствам, которые я отобразил, но теперь, используя этот плагин, я немного потерян.
UPDATE
Я был в состоянии подтвердить, что это возможно, чтобы получить доступ к «сложному» объекту, используя обозначение I отображаемое (протестирован с другим «сложным» классом). Поэтому я думаю, что моя проблема лежит внутри поколения JSON моего конкретного класса (тот, который я не записывал, поэтому я не делаю вопрос более сложным) ... Я попытаюсь взглянуть внутрь сгенерированного JSON в сетку и сообщить вам, что там происходит.
SOLVED: Обнаружен нулевой указатель внутри поколения JSON, поэтому я его исправил. Проблема здесь. Принятый ответ отправляется @Andrea, когда он указал, как получить доступ к внутренним объектам объекта, что было моим первоначальным вопросом (хотя я делал это правильно, но не смог из-за проблемы с nullpointer).
Спасибо за ваш ответ @Andrea. Сначала я обеспечил, что у меня был список внутри моей gridModel, когда действие выполняется, и все геттеры и сеттеры размещены. Я также пытался изменить индекс, но он тоже не работал. Также проверено, что я не забыл о пустом конструкторе, ни о каких-либо геттерах или сеттерах ... Это странно, потому что Im-тестирование в рамках одного и того же действия с двумя случаями, сначала используя только «простой» класс, и когда я его вижу, он корректно отображает все данные , Я пытаюсь переключиться на «сложный» класс, но он ничего не показывает .. :( –
JorgeGRC
Возможно, есть некоторая ошибка при создании JSON для сетки, и я не замечаю этого, и это объясняет, почему это ничего не показывает В прошлом у меня возникли некоторые проблемы с разбором нулевых значений с помощью JSON ('Vehicle'in' Reservation'could null). – JorgeGRC
'a Список внутри моей gridModel': | список должен быть самой моделью, а не находиться внутри нее –