【问题标题】:Accessing HashMap action variables using JSONObject in JSP file在 JSP 文件中使用 JSONObject 访问 HashMap 动作变量
【发布时间】:2012-01-31 15:22:26
【问题描述】:

我正在使用带有 java 动作类的 Struts2 并查看 JSP 文件。

我的 Action 类有一个名为:

HashMap<Integer, Boolean>  pcksHavingFet;
List<pck> pcks;
int fet;

在 pcks 中,我有一个带有主键 pckId 的 pck 列表。 我在动作类中有一个代码函数,它根据 pck 是否与数据库中的 fet 关联来评估 pcks 并分配真/假。所以我们得到了 pcksHavingFet Map 的完整评估表达式。

//Code that evaluates and set pcksHavingFet varaible. 
//Create A JSON Object to access this Map variable in JSP.
public void function()
{
// code to populate pcksHavingFet with key/value pair.
//e.g, pcksHavingFet  = {1:true, 2:fALSE, 6:TRUE, 17:false, 11:true .....}

//Create JSON Object to access Map in JSP file
JSONObject jasonfeat = new JSONObject();
jasonfeat.accumulateAll(pcksHavingFet  );
}

在Jsp文件中,

我需要访问这个 pcksHavingFet 映射变量。

我正在使用下面的函数来显示/隐藏基于 pckId 的 fetDropdown 下拉列表是从 Map pcksHavingFet 计算的真/假。

function pcksOnChange(pckId)
{ 
var pcksHavingFet = <ww:property value="pcksHavingFet "/> ;
<ww:set name="pcksHavingFet" value="%{JSONObject.fromObject(pcksHavingFet)}">
</ww:set>
fetDropdown.style.display = (pcksHavingFet [pckId]) ? "" : "none";
}

但是我可以在我的操作类中看到 pcksHavingFet 变量的填充值。但是在 JSP 文件中,虽然无法访问它。它以空地图的形式出现。

请帮助我成功访问此变量。这将是一个 gr8 帮助。我是 JSON 新手,请详细说明您的建议/帮助。

提前致谢。

【问题讨论】:

    标签: json jsp struts2 struts hashmap


    【解决方案1】:

    为什么你不使用 Struts2 内置机制来处理 JSON.Struts2 提供 [Json-plugin].1

    JSON 插件自 2.1.7+ 起与 Struts 捆绑在一起

    您需要做的就是在您的类路径中添加插件 jar jar,并且需要扩展 json-default 来代替 struts-default,然后您就可以开始了。

    建议您阅读插件页面了解详细信息以及如何在 Struts2 中使用 JSON 的示例

    1. Strus2-Json

    正如旁注ww 代表现在已合并到 Struts2 中的网络工作,因此使用标签别名作为s 代替ww 更清楚,但最终选择是都是你的。

    当您询问有关 Struts2 的问题时,最好用 struts2 标记它们而不是 struts :)

    【讨论】:

    • 感谢您的回复。实际上我正在管理一个软件,需要使用当前的实现。如果您可以为上述场景提供任何帮助并告诉我我在 jsp/action 中访问 json Map 变量的错误,那将是 gr8 帮助。虽然我正在研究 JSON 插件。 :-)
    • 快速提问,您的行动课程中有地图的 getter 和 setter 吗?或者将属性设置为公共 bt 这不是一个好主意
    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 2011-06-24
    • 1970-01-01
    • 2015-02-19
    • 2012-07-09
    • 2017-06-21
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多