gpt4 book ai didi

javascript - 使用 javascript 的返回值作为 struts if 标签中的条件

转载 作者:行者123 更新时间:2023-12-02 22:39:26 25 4
gpt4 key购买 nike

我正在使用 struts2 和 javascript 格式化 HTML,并将函数的返回值传递给 <s:if>标签。我希望它的行为与任何其他条件一样;然而,<s:if>标签的行为始终如一,就像返回 false

page.jsp

<s:if test="%{myFunction()}">
<p>foo</p>
</s:if>
<s:else>
<p>bar</p>
</s:else>

page.js

function myFunction() {
if(some_condition) { return true; }
else { return false; }
}

bar

我已经独立测试了 javascript 函数,它按预期工作 - 两者 truefalse根据条件被退回。该功能已正确包含在 .jsp 中代码(它之前在 <script> 标记中定义)。

直观上,我相信我应该能够使用返回值作为条件,但我开始相信我可能是不正确的。关于此行为的文档相当稀疏,并且 official struts2 documentation对于是否可能,没有太多可说的。

这是一个语法错误,还是我遇到了 struts2 的限制?

最佳答案

它既不是 (1) 语法错误,也不是 (2) Struts 2 的“限制”。

  1. 如果是语法错误,您会得到...语法错误,要么在服务器端的日志中,要么在客户端的 JS 控制台中。
  2. S2 是一个标准的基于操作的 Java Web 框架;它对客户端的任何事情一无所知:服务器上发生的事情和客户端(例如浏览器)上发生的事情之间没有(直接)互操作。

TL;DR: JSP 页面在服务器上运行。 JavaScript 在客户端上运行。没有直接联系。

发送到客户端的页面在发送之前、任何 JavaScript 运行之前等进行渲染。服务器端对页面上的 JavaScript 一无所知。 (这就是为什么您可以将 S2 标签渲染为 JS,然后代码在客户端上使用该代码。)

如果您希望能够动态渲染 DOM 元素,那么一切都必须在 JS 端处理,尽管您的 JS 代码可以包含 S2 标签。

这是基本的 Java Web 应用程序内容:JSP 文件只是模板。它们在作为响应发送到客户端之前已完全呈现。

关于javascript - 使用 javascript 的返回值作为 struts if 标签中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58632885/

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