gpt4 book ai didi

javascript - struts2+spring3 : passing a variable from action to jsp (javascript code)

转载 作者:行者123 更新时间:2023-11-29 22:34:02 26 4
gpt4 key购买 nike

首先,非常感谢所有在这个论坛上试图解决我们问题的人;)

我正在用struts2+spring3开发一个web应用。我有一个关于如何将变量(数组的数组)从 Action 类传递到 jsp 页面的问题。

我知道您唯一需要做的就是在我的操作中声明一个私有(private)变量和该变量的 get 方法,然后可以从 jsp 访问这些变量,我已经做到了并且有效。

public class Workspace extends ActionSupport {

private String[][] objects=null;

public String[][] getObjects() {
return objects;
}

public String execute() throws Exception{

问题是我想在加载整个网页之前从 javascript 代码访问这个变量。

我试过各种方法,但从来没有奏效。

$(function() {
var objectsMap=new Array();

$(document).ready(function() {
objectsMap = $objects;
});

都不起作用(警告说:“值:未定义”):

    <s:set name="auxObj" value="%{objects}"/>
<script>
alert("Value: "+$("#auxObj").val());
</script>

有人知道我该怎么做吗?

最佳答案

对于 Web 开发初学者来说,重要的是要了解服务器端语言(如 JSP)在网络服务器上运行,而客户端语言(如 JS)在网络浏览器上运行。 JS 不与 JSP 同步运行。 JSP 只生成 HTML/CSS/JS 代码。网络服务器将其发送到网络浏览器。 JS 只能看到/理解 HTML。

每当你想给JS赋值JSP变量时,你需要让JSP打印它好像它是JS代码。这是 JSTL 的示例 <c:forEach>遍历 Object[][] 的标签(我相信 Struts 也有自己的迭代器标签 <s:iterator> ,但由于我不使用 Struts,所以我不确定如何使用它以及它是否适用;JSTL 应该也能正常工作)。

<script>
var objects = [];

<c:forEach items="${objects}" var="row" varStatus="x">
objects[${x.index}] = [];
<c:forEach items="${row}" var="column" varStatus="y">
objects[${x.index}][${y.index}] = '${column}';
</c:forEach>
</c:forEach>
</script>

假设您有一个 Object[][],当 JSP 完成其生成 HTML/JS 代码的任务时,这种方式将以如下方式结束。有 2 行和 2 列(您可以通过在网络浏览器中打开页面,右键单击它并选择查看源代码来自己验证):

<script>
var objects = [];
objects[0] = [];
objects[0][0] = 'row1col1';
objects[0][1] = 'row1col2';
objects[1] = [];
objects[1][0] = 'row2col1';
objects[1][1] = 'row2col2';
</script>

这样JS代码就可以通过objects来访问了.

关于javascript - struts2+spring3 : passing a variable from action to jsp (javascript code),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5922326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com