Как проверить пользовательский агент браузера на странице JSP, используя JSTL, EL? - PullRequest
16 голосов
/ 09 июня 2009

Мне нужно проверить пользовательский агент браузера, чтобы убедиться, что это IE6. Однако я не должен использовать скриптлеты (у нас строгая политика без скриплетов), чтобы сделать это.

В настоящее время я использую

<%
String ua = request.getHeader( "User-Agent" );
boolean isMSIE = ( ua != null && ua.indexOf( "MSIE" ) != -1 );
%>

<% if( isMSIE ){ %>
<div>
<% } %>

Какой самый чистый способ сделать это, используя JSTL, EL и т. Д., А не скриптлеты?

Ответы [ 3 ]

24 голосов
/ 09 июня 2009
<c:set var="browser" value="${header['User-Agent']}" scope="session"/>
20 голосов
/ 07 октября 2009
<c:if test="${fn:contains(header['User-Agent'],'MSIE')}"></c:if>
1 голос
/ 01 октября 2015

Если вы используете spring-mobile framework, вы можете использовать следующее для проверки типа устройства

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
    <c:choose> 
        <c:when test="${currentDevice.normal}"><p>"Welcome desktop user"</p> </c:when>
        <c:when test="${currentDevice.mobile}"><p>"Welcome mobile user"</p>  </c:when>
        <c:when test="${currentDevice.tab}"><p>"Welcome tab user"</p> </c:when>
    </c:choose>
...