У меня есть приложение Struts 2, в котором я использую плагин json Struts 2 для обработки json.
Теперь я хочу использовать сетку данных dojo для заполнения данных из действия.Я могу назвать действие.Все встроенные типы данных работают в действии.Однако, когда я использую пользовательский объект в своем классе, я получаю ошибки в классе действия.
Я хочу использовать ItemFileReadStore в качестве хранилища для сетки, которая нуждается в данных в следующем формате:
items: [{obj1},{obj2},{obj3},{obj4}]
Теперь у меня есть класс с именем Device.Я хочу отправить список объектов устройства обратно клиенту.Но как мне предоставить данные в указанном выше формате и использовать их на стороне клиента .?
Редактировать:
Я получаю следующую ошибку:
E com.ibm.ws.webcontainer.webapp.WebApp logError SRVE0293E: [Servlet Error]-[com.googlecode.jsonplugin.JSONException: com.googlecode.jsonplugin.JSONException: java.lang.reflect.InvocationTargetException]: com.ibm.ws.webcontainer.webapp.WebAppErrorReport: com.googlecode.jsonplugin.JSONException: com.googlecode.jsonplugin.JSONException: java.lang.reflect.InvocationTargetException
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:624)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1071)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:852)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:917)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.invokeFilters(DefaultExtensionProcessor.java:924)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:852)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
Что такоепричина этой ошибки.Мой класс действий:
jsonWrapper.setIdentifier("firstName");
jsonWrapper.getListItems().add(User.getUser("t2590pk"));
jsonWrapper.getListItems().add(User.getUser("t8923sm"));
jsonWrapper.setItems(jsonWrapper.gson.toJson(jsonWrapper.getListItems()));
System.out.println(jsonWrapper.getItems());
Конфигурация Struts:
<action name="jsonTest" class="com.dcx.ispeed.actions.JSONTest">
<result type="json">
<param name="excludeProperties">
gson
</param>
</result>
</action>
Класс jsonWrapper:
/**
*
*/
package com.dcx.ispeed.business;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.ibm.ws.http.HttpRequest;
/**
* @author t2590pk
*
*/
public class JSONWrapper {
public Gson gson = new Gson();
private String identifier;
private String label;
private String items;
private List listItems = new ArrayList();
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getItems() {
return items;
}
public void setItems(String items) {
this.items = items;
}
public List getListItems() {
return listItems;
}
public void setListItems(List listItems) {
this.listItems = listItems;
}
/**
*
*/
public JSONWrapper() {
System.out.println("Calling JSON wrapper constructor.");
}
}
Спасибо .. :)