gpt4 book ai didi

java - 最佳实践 struts/jsp/i18n/resourceBundle

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:53 27 4
gpt4 key购买 nike

我正在使用 Struts 2 和 Apachetile,而且我对这两者都是新手。我正在尝试“清理”一些我觉得不正确的现有资源(如果我错了请告诉我)。

我有以下结构:

  • 在layout.jsp中:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title><tiles:getAsString name="title" /></title>
    <tiles:insertAttribute name="header" />
    </head>
    <body>
    <div id="content-size-and-border">
    <s:if test="display!='nomenu'">
    <tiles:insertAttribute name="menu" />
    </s:if>
    <div id="maincontent">
    <tiles:insertAttribute name="maincontent" />
    </div>
    </div>

    </body>

主要内容部分根据单击的项目菜单显示各种 jsp/action。菜单部分直接在jsp中使用一些java代码通过迭代列表来生成许多子文件夹。

<li class="highlight sousmenu"><a href="#"><s:text
name="menu.demarrage" /></a>
<ul class="niveau2">

<%
Locale language = (Locale) session.getAttribute("WW_TRANS_I18N_LOCALE");
// the attribute (used by i18n struts interceptor)
// set in session when the user changes the language

if (language == null)
language = request.getLocale() ;
// if the language was not changed, get the default Locale from browser

User user = ((CustomUserDetails) SecurityContextHolder.getContext()
.getAuthentication().getPrincipal()).getBpmUser();
if (user != null) {
for (Iterator iterator = user.getProcesses().iterator(); iterator
.hasNext();) {
String processToStart = (String) iterator.next();
String processPath = BpmUiConstantes.BPMUI_PROCESS_CONFIG_ROOT + "/" + processToStart ;
String processLib = "process." + processToStart + ".label";
%>

<li>
<a href="<%=request.getContextPath()%>/restricted/DemarrerProcessAvecTache?processName=<%=processToStart%>">
<fmt:setLocale value="<%=language%>"/>
<fmt:bundle basename="<%=processPath%>">
<fmt:message key="<%=processLib%>"/>
</fmt:bundle>
</a>
</li>

<%
}
}
%>
</ul>
</li>

我想知道是否有更好的方法来实现相同的结果,而无需在jsp中使用java代码。从概念的角度来看,从 jsp 中删除 java 代码重要吗?

应用程序使用 struts i18n 拦截器来进行语言更改。有没有办法让菜单以某种方式使用 struts i18n 拦截器?

最佳答案

我肯定会更多地研究 JSTL 核心(使用 foreach 的 C 标记)和 fmt(用于区域设置语言),通过这两个库,您应该能够安全地将嵌入的 java 代码删除到页面中,并使用更一致/安全的方法

这是 JSTL 的 oracle 网页,您可以引用一下

JSTL Reference

如果您有任何其他问题,请随时询问。

关于java - 最佳实践 struts/jsp/i18n/resourceBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com