0

我的要求是我必须将一些值或列表放入对象的键值对中Json,因为我在 java 类上做了类似的事情,但无法弄清楚如何通过 java 脚本检索 java 类中使用的相同 Json 对象在jsp页面上。请帮我解决问题

import org.json.simple.JSONObject;
class BeanManager{
    private JSONObject jsonObject;
    public JSONObject getJson()
    {
        jsonObject=new JSONObject();
        jsonObject.put("name","jack Daniel");
        jsonObject.put("age","3");
    }
}
4

2 回答 2

0

在转发到 JSP 之前附加您的类实例作为请求属性,然后在视图中使用它。另外,请确保不要在 getter 中做业务工作(如果您声称要返回一个对象)。

总而言之,类代码可能如下所示:

类 BeanManager{

private JSONObject jsonObject;
private String jsonObjectString;

public BeanManager() {
    jsonObject=new JSONObject();
    jsonObject.put("name","jack Daniel");
    jsonObject.put("age","3");
    jsonObjectString = jsonObject.toString();
}

public JSONObject getJsonObjectString() {
    return jsonObjectString;
}

}

相关的 servlet 部分可能如下所示:

BeanManager bm = new BeanManager();//manipulate it the way you want
request.setAttribute("bean", bm);
request.getRequestDispatcher("/WEB-INF/view.jsp").forward(request, response);

该视图可能包含以下部分:

<script>
    var json = ${bm.jsonObjectString};
</script>

这样,json 变量将在 JavaScript 上下文中可用。

如果您想处理 AJAX 请求,请查看如何使用 Servlets 和 Ajax?问题及其答案。在那里,JSON 对象从 servlet 返回,然后解析为 HTML 文档。

于 2013-07-23T10:21:56.057 回答
0

在 JSP 中将 JSON 内容附加到 html 节点,然后在 JavaScript 中读取节点内容并将它们评估为 JS 对象。

这种解决方案可能仅在时间上有用。考虑使用另一种方式

于 2013-07-23T10:07:07.057 回答