2012-12-11 40 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