我想使用 Struts 在 JSP 页面中呈现内容。
我有 Java Bean 类实现
Serializable
:
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, ...]
我想知道,在不重写
toString()
类中的 MyPOJO
方法的情况下,是否有其他方法可以直接将其转换为 JSON 字符串?我还创建了一个 REST 服务,返回 MyPOJO
列表,没有 toString()
方法。它已经可以显示 JSON 字符串。我想知道为什么它对 JSP form bean 不起作用?
因为你没有重写
ArrayList
toString()
方法。您的属性是一个必须序列化为 JSON 的集合。您可以扩展 ArrayList
并覆盖该方法,或者使用本机 JSONArray
或已被覆盖并返回 JSON 字符串的 JSONObject
toString()
。