2012-12-11 38 views
0

的陣列這裏是嵌入在Java腳本JSP代碼:Javascript代碼讀取地圖

//This object comes from Java code to Jsp Code.  
var msgs = [{name=rajasekhar, langId=en, bShow=true}, {name=sekhar, langId=de,bShow=false},{name=valli, langId=en, bShow=false}]; 


<script type="text/javascript"> 
var langSectState = new Array(); 

<c:forEach var="msg" items="${msgs}"> 
    <c:set var="langId" value="${msg['langId']}"/> 

    langSectState ["${langId}"] = ${msg['bShow']}; //JS 

</c:forEach> 
</script> 

MoreInfo:上面的代碼它提取LANGID,bShow從陣列封郵件並存儲值。

我的服務器配置更改後,這不能正常工作。所以,我必須將此代碼更改爲完整的Java腳本。

任何人都可以提出同等代碼這Java腳本

+1

爲什麼不使用JSON編碼? 'var langSectState = $ {msgs_json}'其中'msgs_json'是地圖的json編碼數組。 –

+0

嗨@Jan Dvorak,請你解釋一下。如何直接「消息」可以轉換成該形式。如何將消息編碼爲msgs_json? – Rajasekhar

回答

1

我不知道你是否真的需要這個數組中的覆蓋值(例如,你有LANGID =「EN」兩個對象)。但是你的代碼看起來像下面的代碼。

<script type="text/javascript"> 
var msgs = [{name:"rajasekhar", langId:"en", bShow:true}, {name:"sekhar", langId:"de",bShow:false},{name:"valli", langId:"en", bShow:false}]; 
var langSectState = new Array(); 

for(var it in msgs) 
{ 
    var langId = msgs[it]['langId']; 
    langSectState[langId] = msgs[it]['bShow']; 
} 

for(var it in langSectState) 
{ 
    console.log(it+":"+langSectState[it]); 
} 

</script> 

請注意,執行console.log環加到只是爲了測試目的

+0

嗨Mikali,感謝您的代碼和部分它解決了我的問題。該langid不會重複。這是我的錯誤。但是,var的消息將有「=」符號而不是「:」。由於它將在jsp中處理,因此我無法在Java代碼中將結構更改爲「:」。 – Rajasekhar