0

我有一个需要以英语和阿拉伯语显示的网络应用程序。我为英语和阿拉伯语添加了 2 个单独的资源包。当它使用带有 jstl 格式<fmt:message key="navigation.welcome"/>的阿拉伯语时,它可以正常显示阿拉伯语单词。但是当我使用<fmt:message var="itemLabel" key="navigation.welcome"/>它时它不起作用,它显示键/值对的 unicode 值。存储在 Unicode 中的键/值对如下。

navigation.welcome = &#1571;&#1607;&#1604;&#1575; &#1608;&#1587;&#1607;&#1604;&#1575;!

jsp页面如下。

<dsp:page> 
  <div id="atg_store_personalNav">
    <ul id="atg_store_personalNavItems">

     <%-- WISH LISTS LINK --%>
     <li class ="${activeTab=='WISHLIST' ? ' active' : ' '}">
     <fmt:message var="itemLabel" key="navigation.welcome"/>
     <fmt:message var="itemTitle" key="navigation_personalNavigation.linkTitle">
     <fmt:param value="${itemLabel}"/>
     </fmt:message>

    <dsp:droplet name="ProfileSecurityStatus">

        <%-- Logged in User --%>
        <dsp:oparam name="loggedIn">
        <dsp:a id="myWishList" page="/myaccount/myWishList.jsp" title="${itemTitle}" iclass="atg_store_navWishList">
          <c:out value="${itemLabel}"/>
        </dsp:a>
        </dsp:oparam>

          <%-- Anonymous user or logged in from cookie --%>
          <dsp:oparam name="default">
          <dsp:a id="myWishList" page="/global/util/loginRedirect.jsp?error=wishlistNotLoggedIn"
               title="${itemTitle}" iclass="atg_store_navWishList">
          <dsp:property bean="SessionBean.values.loginSuccessURL" value="myWishList.jsp"/>
          <c:out value="${itemLabel}"/>
        </dsp:a>
      </dsp:oparam>

     </dsp:droplet>

   </li>
   </ul>
  </div>
</dsp:page>

var 选项需要与 fmt:message 一起使用以备后用。有人可以帮助我吗?

4

2 回答 2

0

在您的控制器或操作类中,只需将以下逻辑编写为:

response.setCharacterEncoding("UTF-8");

然后它应该工作。

于 2013-10-08T06:54:56.007 回答
0

它用于显示输出。默认情况下,c:out 会转义 XML 特殊字符,例如 &。通过添加 escapeXml="false" 它解决了。

于 2013-07-15T14:09:01.973 回答