【发布时间】:2014-04-12 22:58:22
【问题描述】:
我想使用 struts 在 JSP 页面中呈现内容。
我有实现 Serializable 的 Java Bean 类:
public class MyPOJO implements Serializable {
String name;
int value;
// A lot of other members, but all String or int
// Getters and setters
}
我的表单类带有 MyPOJO 列表:
public class MyForm extends ActionForm {
private List<MyPOJO> results = new ArrayList<MyPOJO>();
// Getter and setter
}
还有一个类继承 DispatchAction 将 MyForm 对象传递到页面上。
在我使用的jsp页面上:
<logic:notEmpty name="myForm" property="results">
var jsonData = ${myForm.results};
</logic:notEmpty>
生成的jsp文件中的最终结果是一个MyPOJO对象列表:
var jsonData = [com.package.MyPOJO@174aee5, ...]
我想知道,在不覆盖 MyPOJO 类中的 toString() 方法的情况下,还有其他方法可以直接将其转换为 json String 吗?我还创建了一个返回 MyPOJO 列表的 rest 服务,没有 toString() 方法,它已经可以显示 JSON 字符串,我想知道为什么它不适用于 JSP 表单 bean?
【问题讨论】:
-
这是因为 REST 框架(我猜是 Jax-RS)将您返回的对象转换为 JSON。它不会神奇地发生。如果您想要 JSON,请使用 JSON 编组器(Jackson、Gson 等)将您的对象转换为 JSON 字符串。为什么要使用废弃框架(Struts)的已弃用标签库(逻辑)?
-
感谢您的回答!因为这是我正在从事的一个非常古老的项目......
标签: java json struts javabeans