1

早上,我正在寻找一种使用条纹框架根据浏览器语言加载不同文件的方法。例如

if (getLocal() == Local.US) load(testsheet_us);

jsp文件的相同问题:

<c:if test="${local == Local.US")> include('about_us')</c:if>

或类似的东西。

艾琳

4

1 回答 1

2

请求的本地是在 actionBean上下文中。在 actionBean 中,您可以编写如下代码:

if (getContext().getLocale() == Local.US) load(testsheet_us) {
    // do something
}

在 JSP 中可以这样完成:

<%-- this will go into a general include file: --%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="context" value="${actionBean.context}"/>
<% pageContext.setAttribute("US", java.util.Locale.US); %>

<c:if test="${context.locale.country == US}">
  <jsp:include page="about_us.jsp"/>
</c:if>

但是除非每个语言环境都有不同的布局,否则您通常会使用ResouceBundles来本地化您的应用程序。本地化字段如下所示:

<fmt:message key="aboutus.name"/><br>
<fmt:message key="aboutus.companyVision"/><br>

Stripes 还使用 resourcebundles 本地化 Stripes 标签,请参阅:Stripes LocalizationStripes Multiple Resource Bundles

于 2011-06-13T18:16:18.950 回答