欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP 表达式 VS EL 表达式 用法比较

程序员文章站 2022-07-02 08:16:02
...

应用场景:
根据访问路径URL,判断当前用户选择使用的语言。转向对应语言的页面。

知识点:
判断语言,设定语言变量,并在JSP中使用 EL 表达式 或 JSP 表达式引用设定的变量。

代码:

    <%
    // 根据路径,取出路径中的语言。
    // URL: http://xyz.com/en/home.jsp

    String _lan = "en";
    String _Url = request.getRequestURL().toString();

    if(_Url.contains("/fr/")){
        _lan = "fr";
    }
    else if(_Url.contains("/de/")){
        _lan = "de";
    }
    else if(_Url.contains("/ja/")){
        _lan = "ja";
    }
    else if(_Url.contains("/es/")){
        _lan = "es";
    }
    else if(_Url.contains("/ko/")){
        _lan = "ko";
    }
    else if(_Url.contains("/zh-hans/")){
        _lan = "zh-hans";
    }
    else if(_Url.contains("/zh-hant/")){
        _lan = "zh-hant";
    }

    %>



不可以这样使用 JSP 表达式:
    <c:redirect url = "/hyatt/404.jsp?language=<%=_lan%>"/>


这是正确的:
<%
    request.setAttribute("_lan", _lan);
%>
    <c:redirect url = "/hyatt/404.jsp?language=${_lan}"/>


或者是这样使用:
    <c:set var="_lan" value="<%=_lan%>"></c:set>
    <c:redirect url="/hyatt/404.jsp?language=${_lan}"/>



应用示例:
   <c:set var="isAuthor" value="<%=WCMMode.fromRequest(request) != WCMMode.DISABLED%>"></c:set>
   <c:choose>
        <c:when test="${isAuthor}">
                 <%@include file="/lib/servlet/error/default.jsp"%>
        </c:when>
        <c:otherwise>
                 <%@include file="default.jsp"%>
        </c:otherwise>
   </c:choose>







-
相关标签: jsp el