How do you check the browser's user agent in a JSP page using JSTL, EL?
38,159
Solution 1
<c:set var="browser" value="${header['User-Agent']}" scope="session"/>
Solution 2
<c:if test="${fn:contains(header['User-Agent'],'MSIE')}"></c:if>
Solution 3
If you are using spring-mobile framework you can use following to check device type
<%@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>
Comments
-
Christopher Tokar almost 2 years
I need to check the browser's user-agent to see if it is IE6. However I shouldn't use scriptlets (we have a strict no scriptlets policy) to do this.
Currently I use
<% String ua = request.getHeader( "User-Agent" ); boolean isMSIE = ( ua != null && ua.indexOf( "MSIE" ) != -1 ); %> <% if( isMSIE ){ %> <div> <% } %>
What is the cleanest way to do this using JSTL, EL, etc and not scriptlets?