2009-06-09 4 views
16

Ich muss den User-Agent des Browsers überprüfen, um zu sehen, ob es IE6 ist. Allerdings sollte ich keine Scriptlets verwenden (wir haben eine strikte, keine Scriptle-Richtlinie), um dies zu tun.Wie überprüfen Sie den User Agent des Browsers in einer JSP-Seite mit JSTL, EL?

Derzeit verwende ich

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

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

Was ist der sauberste Weg, um diese mit JSTL zu tun, EL, etc. und nicht Scriptlets?

Antwort

24
<c:set var="browser" value="${header['User-Agent']}" scope="session"/> 
19
<c:if test="${fn:contains(header['User-Agent'],'MSIE')}"></c:if> 
+0

Zoltan

+0

Zoltan, Sie müssen am Anfang des Codes vier Leerzeichen hinzufügen, damit es korrekt angezeigt wird. – Welbog

1

Wenn Sie spring-mobile Framework verwenden, können Sie folgende verwenden Gerätetyp

<%@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>