我想使用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吗?我还创建了一个rest服务,该服务返回一个MyPOJO列表,没有toString()
方法,它已经可以显示JSON字符串,我想知道为什么它不适用于JSP form bean? 最佳答案
因为您没有覆盖ArrayList
toString()
方法。您的属性是一个必须序列化为JSON的集合。您可以扩展ArrayList
并覆盖该方法,也可以使用已被覆盖并返回JSON字符串的本机JSONArray
或JSONObject
toString()
。