2012-01-02 47 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