使用Struts将java bean转换为json字符串

时间:2013-11-22 14:26:27

标签: java json struts javabeans

我想使用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列表,没有toString()方法,它已经可以显示JSON字符串了,我想知道为什么它对JSP表单bean不起作用? / p>

1 个答案:

答案 0 :(得分:0)

因为您没有覆盖ArrayList toString()方法。您的属性是必须序列化为JSON的集合。您可以扩展ArrayList并覆盖该方法,也可以使用已被覆盖的本机JSONArrayJSONObject toString()并返回JSON字符串。