我正在使用 Struts2 使用java操作类并查看 JSP 文件。
我的Action类有一个名为:
的变量HashMap<Integer, Boolean> pcksHavingFet;
List<pck> pcks;
int fet;
在pcks中,我有一个带有主键pckId的pck列表。 我在动作类中有一个代码函数,它根据pck是否与数据库中的fet相关联来评估pcks并分配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 Map变量。
我使用下面的函数来显示/隐藏基于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文件中,虽然无法访问它。它即将成为空地图。
请帮我成功访问此变量。这将是一个帮助。我是JSON的新手,请详细说明你的建议/帮助。
提前致谢。
答案 0 :(得分:0)
为什么你没有使用Struts2 Build in机制来处理JSON.Struts2提供[Json-plugin]。1
自2.1.7 +
以来,JSON插件与Struts捆绑在一起您需要做的就是在类路径中添加插件jar jar,并且需要扩展json-default
来代替struts-default,你就可以了。
建议您阅读插件页面以获取详细信息以及如何在Struts2中使用JSON的示例
正如旁注ww
表示现在已合并到Struts2的网络工作一样,因此使用s
代替ww
更加清晰明了,但最终的选择都是你的。
当您询问有关Struts2的问题时,更好地用struts2标记它们而不是struts:)