2016-09-29 5 views
1

На моей странице JSP я включаю в себя еще один JSP, и я хочу ограничить его на основе исходной страницы на мобильном или веб-сайте.Ограничение содержимого JSP на основе веб-или мобильного представления приложения

<%@include file="/templates/jsp/header/search.jsp" %> 

Это мой оператор включения, и у меня есть функция JavaScript, которая определяет, является ли рабочий стол или нет. Ниже мой JS функция:

function isDesktopView(){ 
    if (bootstrapEnv == "lg" || bootstrapEnv == "md") { 
     return true; 
    } 
} 

Я пытался что-то вроде

<s:if test = "%{isDesktopView()}"> 
    <%@include file="/templates/jsp/header/search.jsp" %> 
</s:if> 
+2

Вы пытались запустить Javascript (клиентскую сторону) в теге Jsp (на стороне сервера). Это самая распространенная ошибка. JSP только читает JSP. Javascript работает только на стороне Cilent, если JSP больше нет. Но я думаю, вы можете использовать запрос, чтобы проверить, пришел ли запрос от мобильного проводника. – AxelH

+0

Возможный дубликат [Как обнаружить мобильный (iOS и Android) с помощью JSP/Java?] (Http://stackoverflow.com/questions/6770572/how-to-detect-mobile-ios-and-android-using-jsp-java) – AxelH

ответ

0

Как @AxelH говорится в комментарии, вы смешиваете JS и JSP. JSP запускает серверную сторону до того, как страница будет отправлена ​​в браузер, JS выполняется на стороне клиента браузером. Если вы хотите, чтобы страница была включена на сервер, вам может потребоваться привязать параметр к отправляемому запросу (mypage/home?isDesktopView=true). В контроллере вы добавите параметр в представление, а затем можете использовать код, который должен был определить, какой заголовок должен включать.

<s:if test = "%{isDesktopView()}"> 
    <%@include file="/templates/jsp/header/search.jsp" %> 
</s:if> 

Другим решением было бы, чтобы проверить размер экрана при загрузке страницы (JS), а затем загрузить правильное содержимое в DIV. Это означало бы два отдельных запроса, но выполняло свою работу. Хотя, если это заголовок страницы, который вы пытаетесь включить, я бы не рекомендовал этого.

$(function() { 
    if(bootstrapEnv == "lg" || bootstrapEnv == "md") { 
     $('#myDiv').load('/templates/jsp/header/search'); 
    } 
}); 
+0

Спасибо, это помогло много ..! –

Смежные вопросы