我将使用AngularJs组件" ng-grid"显示该数据网格上的人员列表。在" main.js"该组件应该从这样的URL中读取数据
$http.get('http://localhost:7001/UserPortal/test/json/JsonResualt.jsf').success(function (largeLoad)
我的问题是如何定义它!
实际上我写了一个方法来获取数据并将其转换为像这样的JSONArray
public String toJson(){
String query = "select * from t_person";
JSONObject jsObj = new JSONObject();
JSONArray prsJsonArray = new JSONArray();
try {
ArrayList<PersonBean> persons = some code to fetch data
for (PersonBean personBean : persons) {
JSONObject prsJsObj = new JSONObject();
prsJsObj.putOpt(String.valueOf(persons.indexOf(personBean)), personBean);
prsJsonArray.put(prsJsObj);
}
jsObj.put("prsJsonArray", prsJsonArray);
getResponse().setContentType("application/json");
getResponse().getWriter().write(jsObj.toString());
} catch (Throwable e) {
e.printStackTrace();
}
}
当我调试它时,在&#39; prsJsonArray&#39;我有一些JSON数据,我可以在响应对象上使用它。 我的问题是,如何直接从URL调用此方法?或者我可以采取其他方式来处理这个问题吗? 我使用J2EE和EJB,我的网页是JSF
提前致谢。
答案 0 :(得分:1)
你有一些完全错误的东西。您使用JSF页面作为Web服务,这很糟糕。如果您不想创建一个Web服务来检索JSON对象,您应该使用Spring或JAX-RS之类的东西创建一个宁静的服务。
例如,使用JAX-RS:
@Path("userportal/json/metallica")
public class JSONService {
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public Track getTrackInJSON() {
Track track = new Track();
track.setTitle("Enter Sandman");
track.setSinger("Metallica");
//Or retrieve data from DB by calling a DAO for example
return track;
}
}