【问题标题】:How to do a String contains check in EL如何在 EL 中执行包含检查的字符串
【发布时间】:2013-01-26 04:27:19
【问题描述】:

该应用程序是使用 Struts 1.2 框架制作的。我想在jsp文件中获取请求头的主机名,并识别从头中读取user-agent值的浏览器。

以下是我使用 scriptlet 编写的代码:

String userAgent = request.getHeader("user-Agent");
if(userAgent.contains("Chrome")){
    userAgent = "Chrome";
}else if(userAgent.contains("Android")){
    userAgent = "Android";
}

而且代码运行良好。但我想避免使用 scriptlet,因为它存在一些易受攻击的跨站点脚本问题。因此,为了在 EL 中做同样的事情,我可以使用这个来获取标题:

Host is: ${header["user-agent"]}

但我不确定如何在 EL 中进行contains 签入。

这个应用程序在 Struts 1.2 框架上运行,如果框架提供了更好的方法来读取 JSP 中的标头值,那么也请告诉我。否则EL也可以。

【问题讨论】:

    标签: java jsp struts el


    【解决方案1】:

    您需要使用fn:containsfn:containsIgnoreCase

    <c:set var="userAgent" value="${header['user-agent']}"/>
    

    然后:

     <c:if test="${fn:containsIgnoreCase(userAgent, 'Chrome')}">
      <!-- TODO: -->
     </c:if/>
    

    【讨论】:

    • 嘿,我不知道 JSTL 中的 fn... +1。您能否让我知道其中存在哪些其他可用选项(包含除外)?除了 JSTL.jar,我是否需要为此添加一些其他 jar?请让我知道这件事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2012-02-11
    • 2020-07-13
    相关资源
    最近更新 更多