【问题标题】:Restrict JSP content based on web or mobile view of application基于应用程序的 Web 或移动视图限制 JSP 内容
【发布时间】:2016-09-30 02:31:06
【问题描述】:

在我的 JSP 页面中,我包含了另一个 JSP,我想根据移动或 Web 源页面的视图来限制它。

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

这是我的 include 语句,我有一个 JavaScript 函数来确定是否是桌面视图。下面是我的 JS 函数:

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

我正在尝试类似的东西

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

【问题讨论】:

  • 您尝试在 Jsp 标记(服务器端)中运行 Javascript(客户端)。这是最常见的错误。 JSP 只读取 JSP。 Javascript 仅在 Cilent 端运行,不再有 JSP。但我认为您可以使用请求来检查请求是否来自移动资源管理器

标签: javascript jsp


【解决方案1】:

正如@AxelH 在 cmets 中所说,您正在混合 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');
    }
});

【讨论】:

  • 谢谢它帮助了很多..!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多