【发布时间】:2014-12-02 14:52:40
【问题描述】:
我正在尝试了解struts2-jQuery-plugin,更具体地说是struts2-jQuery-grid-plugin。现在我已经复制了开发人员提供的教程HERE. 我已经成功地在网格中显示了一个简单的类,如Customer(在他们的示例中),我可以从里面提到的网格中很好地引用它JSP 并且工作得很好:
<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;
}
}
那么 我现在如何访问 Customer 内部的属性/字段,这也在 Reservation 内部? 来自 Struts2 并在使用这个 jQuery 插件之前使用 <s:property /> 标签,我一直在尝试这样做,因为JSP 内的网格接收到一个包含所有数据的 JSON:
<sjg:gridColumn name="customer.city" index="city" title="City" sortable="false"/>
但它不起作用,因为我的网格列显示为空..
另外是否可以对显示的字段应用任何 OGNL 表达式?假设我想将列的内容大写,在我开始使用 jQuery Grid 之前,我可以通过应用 @ 来管理它987654333@ 到我显示的属性,但现在使用这个插件我有点迷路了。
更新
我已经能够确认可以使用我显示的符号访问“复杂”对象(使用其他“复杂”类进行测试)。所以我认为我的问题出在我的特定类的 JSON 生成中(我没有写下来,所以我不会让问题变得更复杂)......我会尝试看看生成的 JSON 传递到网格,让你知道那里发生了什么。
已解决: 在 JSON 生成中发现了一个空指针,所以我修复了它。问题就在那里。接受的答案是@Andrea,因为他指出了如何访问对象的内部对象,这是我最初的问题(尽管我做得正确但由于空指针问题而失败)。
【问题讨论】:
标签: jquery jsp struts2 jqgrid ognl