2009-06-09 19 views
16

Tôi cần kiểm tra tác nhân người dùng của trình duyệt để xem đó có phải là IE6 hay không. Tuy nhiên, tôi không nên sử dụng tập lệnh (chúng tôi có chính sách tập lệnh không nghiêm ngặt) để thực hiện việc này.Làm thế nào để bạn kiểm tra tác nhân người dùng của trình duyệt trong một trang JSP bằng JSTL, EL?

Hiện nay tôi sử dụng

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

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

cách sạch để làm điều này sử dụng JSTL, EL, vv và không scriptlets là gì?

Trả lời

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, bạn cần thêm bốn dấu cách vào đầu mã để mã được hiển thị chính xác. – Welbog

1

Nếu bạn đang sử dụng spring-mobile khuôn khổ bạn có thể sử dụng sau đây để kiểm tra loại thiết bị

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