在 jsp 中获取屏幕宽度作为变量

Getting screen width as a variable in jsp

本文关键字:变量 取屏幕宽度 jsp      更新时间:2023-09-26

我需要知道调整图像大小(它需要作为img src="blah.jpg?width=x传递),以便我的页面可以以不同的大小显示,有人可以在这里帮助我吗? 我只需要 x(宽度)作为 jsp 变量。

2021 年更新:哇,9 年后。 如果你正在看这个(你们中的一些人仍然在看) - Javascript在过去的9年里已经取得了惊人的长足的进步。 正如下面的评论所说,这在JSP中是不可能的,但在Javascript和CSS3中是可能的。 如果您尝试确定页面的宽度以动态调整元素大小,则可能不尊重多年来开发的响应式原则。 研究CSS Flexbox并在设计时考虑到这一点。

干杯

你所要求的不能用这种方式完成。您的 JSP 呈现在服务器上,并以 HTML 的形式发送到浏览器。只有当页面到达浏览器时,屏幕宽度才可用(使用 JavaScript)。因此,将其作为JSP变量获取根本不可能。

相反,您可以使用 JavaScript 获取上一页中的屏幕宽度,并将其设置为链接中的查询参数或表单的隐藏字段。单击链接或提交表单后,您可以访问请求以获取屏幕宽度。

当然,如果用户可以通过直接在浏览器中输入该页面来访问该页面的 URL,则这不起作用。

或者,在页面加载使用 JavaScript 加载图像。此时您将拥有屏幕宽度,并且可以相应地构造URL。从本质上讲,您将使用正文的onload事件(或 JQuery 中的 $(document).ready)来调用 javascript,它将图像的 src 属性设置为您需要使用的 URL。

我遇到了同样的问题,但后来意识到我可以通过以下方式解决它:
在 tomcat 中有一个启动页面,例如 index.html,它在会话开始时自动调用并执行以下操作:

<!DOCTYPE html>
<html>
<head>
    <script>
    var init=function() {
        var noi=window.innerHeight;
        url="myPage.jsp?rows="+noi;
        cm=document.getElementById('cm');
        cm.href=url;
        cm.click();
    }
    </script>
</head>
<body onload=init()>
<A style='' id=cm HREF=''>&nbsp;</A>
</body>

在"myPage.jsp"页面中,收集 Java 代码中的变量"rows"你准备好滚了!