Иногда в моем .jsp я использую User-Agent, чтобы определить, какой класс или атрибут .css использовать в зависимости от браузера клиента.
пример:
<c:set var="browser" value="${header['User-Agent']}" scope="session"/>
<c:if test="${(fn:contains(browser,'Safari'))||(fn:contains(browser,'Chrome'))}">
<c:set var="cellClass" value="cell-nonFF"/>
</c:if>
<c:if test="${(fn:contains(browser,'Safri') == false)&&(fn:contains(browser,'MSIE') == false)}">
<c:set var="cellClass" value="cell-FF"/>
</c:if>
<c:if test="${fn:contains(browser,'MSIE')}">
<c:set var="cellClass" value="cell-IE"/>
</c:if>
Условия действительны только для IE, поэтому для различных браузеров я должен определить User-Agent таким образом.
Таким образом, пока все в порядке.
Но я полагаю, что есть и другой более изящный или стабильный способ, потому что определения User-Agent для каждого браузера очень разные, и мы планируем и дальше поддерживать мобильные браузеры.
Safari 4 определяется как: Mozilla / 5.0 (Windows; U; Windows NT 5.1; ru-ru) AppleWebKit / 528.16 (KHTML, как Gecko) Версия / 4.0 Safari / 528.16
IE 6 определен как :: Mozilla / 4.0 (совместимый; MSIE 6.0; Windows NT 5.1; SV1; iOpus-IM; Mozilla / 4.0 (совместимый; MSIE 6.0; Windows NT 5.1; SV1); InfoPath.1 ; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Это более стабильная альтернатива?