【发布时间】:2016-02-01 21:15:36
【问题描述】:
我正在尝试使用休眠 ORM 从数据库中检索数据,并使用 Struts2 将输出作为 json 结果。
一切都可以从数据库中检索数据,
但对于 json 结果,我只得到{}。
我认为我的编码有问题。但是需要一些帮助才能弄清楚。
这是我的动作类:
@ParentPackage("json-default")
public class SocialIconsAction extends ActionSupport {
private List<TiendayaCurrencies> _currency;
public List<TiendayaCurrencies> getCurrency() {
return _currency;
}
public void setCurrency(List<TiendayaCurrencies> _currency) {
this._currency = _currency;
}
@Action(value = "currencies", results = {
@Result(name = "success", type = "json", params = {"includeProperties",
"_currency\\[\\d+\\]\\..*"})})
@Override
public String execute() {
_currency = loadCurrencies();
/*Nothing wrong with the DB results.Just to test everything works fine.*/
//for (TiendayaCurrencies _currency1 : _currency) {
// System.out.println("Title - "+_currency1.getTitle());
// }
return SUCCESS;
}
private List<TiendayaCurrencies> loadCurrencies() {
Session session = com.tiendaya.connection.HibernateUtil.
getSessionFactory().openSession();
List<TiendayaCurrencies> cList = session.
createCriteria(TiendayaCurrencies.class).list();
return cList;
}
}
Pojo 类:
public class TiendayaCurrencies{
private Integer id;
private String title;
private String code;
private String symbolLeft;
private String symbolRight;
private char decimalPlace;
...
includeProperties 有什么问题吗?(只有我能想到的地方..)任何人都可以提出一种方法.. 我已经尝试了所有方法...
编辑:
public class SocialIconsAction extends ActionSupport {
private List<TiendayaCurrencies> _currency=new ArrayList<>();
private String sample="working";
public String getSample() {
return sample;
}
public void setSample(String sample) {
this.sample = sample;
}
...
@Action(value = "currencies", results = {
@Result(name = "success", type = "json", params = {"includeProperties", "sample"})})
...
作为 json 输出,它给了我: {"sample":"working"} 这意味着它工作正常。那么为什么它不能与 ArrayList 一起使用??
【问题讨论】:
-
localhost:8080/Tiendaya_Project_Final/currencies-->(动作值)我如何执行我的动作类。它给了我空的 json 结果。 {}-仅限
-
你不是在哪里使用那个 JSON 结果吗? .. 你怎么能说 JSON 是空的?我怀疑..在您的 JSP 或某处您指的是错误的 Json List ..
-
在获得 JSP 的结果之前,我只检查从服务器获取的 json 对象。正如我上面提到的,它是空的。因此,即使我将其设置为 jsp,它也应该给我一个空的 html 元素。(例如:考虑将其设置为选择框)
-
_currency\\[\\d+\\]\\..*你想用这个做什么? -
_currency\\[\\d+\\]\\.*您是否尝试过使用单点.不需要使用includeProperties实际上它会默认序列化所有正在运行的属性
标签: java json struts2 struts2-json-plugin struts-action