2012-01-02 86 views
1

我正在与Struts2使用java操作类并查看JSP文件。在JSP文件中使用JSONObject访问HashMap操作变量

我的Action类有一个名为变量:

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

在PCKS,我有PCK的与主键pckId列表。 我在操作类中有一个代码函数,用于评估pcks并根据pck是否与数据库中的fet没有关联分配true/false。所以我们得到了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"; 
} 

但是我能够在packHavingFet变量的action类中看到填充值。但在JSP文件中,虽然无法访问它。它的空白地图即将到来。

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

在此先感谢。

回答

0

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

因为2.1.7+

所有你需要做的就是添加插件jar的jar在类路径中的JSON插件捆绑了Struts和需要到位的延伸json-default支柱默认你很好去。

建议你阅读插件页面的详细信息和示例如何使用JSON在里面工作的Struts2

  1. Strus2-Json

就像一个侧面说明ww代表网络的工作现已合并到Struts2所以它更清晰地使用标签别名s原地ww,但最终的选择是你的。

当你问的问题关于Struts2的更好的struts2不是支柱:)

+0

感谢您的答复标记它们。其实我正在管理一个软件,需要与当前的实施一起去。如果你能为上述场景提供任何帮助,并告诉我用jsp/action来访问json Map变量的错误,那将是gr8的帮助。虽然我正在研究JSON插件。 :-) – Monika 2012-01-02 12:54:00

+0

快速的问题你有在你的行动类的地图getter ans setter?或者将这些属性作为公共bt,这不是一个好主意 – 2012-01-02 13:22:53