在jquery中获取消息 - 动态密钥

时间:2012-08-27 12:28:58

标签: jsp struts jstl

在我的jsp中,当我选择一个选项时,我会显示一条消息,此消息是从属性文件加载的。例如:

在道具中我有:

 msg.01=Message 1
 msg.02=Message 2
...

在Jquery代码中,我得到所选选项的值:

 $("#optionId').val()

使用Struts bean:message tag:

alert("<bean:message 
bundle='Message'`key='msg."+$("#clientTypeId').val()"+'/>");

显示的警告信息始终为:

???en.msg.0x??? (x is 0 or 1 or ...)

请知道我的问题吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

执行Javascript时无法使用JSTL。我要做的是使用JSTL生成Javascript对象,例如:

<script type="text/javascript">
  var messages = {
  <c:forEach begin="0" end="20" var="n" varStatus="s">
    ${s.first ? '' : ', '}
    <c:set var="key" value="${n gt 9 ? '' : '0'}${n}"/>
    <fmt:message key="msg.${key}" var="msg"/>
    "<c:out value="${key}"/>": "<c:out value="${msg}"/>"
  </c:forEach>
  };
</script>

现在您可以从Javascript对象获取消息:

alert(messages[$("#clientTypeId").val()]);