Иногда в моем .jsp я использую User-Agent для определения того, какой класс или атрибут .css следует использовать в зависимости от браузера клиента.Альтернатива User-Agent в .jsp
пример:
<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>
Conditionals действительны только для IE, так и для различных браузеров, я должен определить User-Agent таким образом.
так как работа на данный момент OK. Но я полагаю, что есть еще один более изящный или стабильный способ, потому что определение User-Agent для каждого браузера очень неоднозначное, и мы планируем дополнительно поддерживать мобильные браузеры.
Сафари 4 определяется как: Mozilla/5.0 (Windows; U; Windows NT 5.1; EN-US) AppleWebKit/528,16 (KHTML, как Gecko) Версия/4.0 Сафари/528,16
И.Е. 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; CLR 2.0.50727)
Является ли это более стабильной альтернативой?