在struts if标记中使用javascript的返回值作为条件

在struts if标记中使用javascript的返回值作为条件,javascript,html,jsp,struts2,Javascript,Html,Jsp,Struts2,我正在使用struts2和javascript格式化HTML,并将函数的返回值传递给标记。我希望它的行为与任何其他条件一样;但是,标记的行为一致,就好像它返回false一样 page.jsp 福 酒吧 page.js 函数myFunction{ ifsome_条件{return true;} else{return false;} } 酒吧 我已经独立地测试了javascript函数,它按照预期工作——根据条件返回true和false。该函数正确地包含在.jsp代码中,它在前面的标记中定义 直觉

我正在使用struts2和javascript格式化HTML,并将函数的返回值传递给标记。我希望它的行为与任何其他条件一样;但是,标记的行为一致,就好像它返回false一样

page.jsp

酒吧

page.js

函数myFunction{ ifsome_条件{return true;} else{return false;} } 酒吧

我已经独立地测试了javascript函数,它按照预期工作——根据条件返回true和false。该函数正确地包含在.jsp代码中,它在前面的标记中定义

直觉上,我相信我应该能够使用返回值作为条件,但我开始相信我可能是错误的。关于这种行为的文档非常稀少,对于它是否可能也没有太多的说明


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

这既不是语法错误,也不是struts2的限制

如果是语法错误,你会得到。。。在日志中的服务器端或JS控制台中的客户端出现语法错误。 S2是一个标准的基于动作的Java web框架;它对客户端的任何事情都一无所知:在服务器上发生的事情和客户端发生的事情(例如浏览器)之间没有直接的互操作。 TL;DR:JSP页面在服务器上运行。JavaScript在客户端上运行。没有直接的联系

发送到客户端的页面在发送之前、在运行任何JavaScript之前呈现。服务器端对页面上的JavaScript一无所知。这就是为什么您可以将S2标记呈现到JS中,然后代码在客户端上使用这些标记

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


这是Java web应用程序的基本内容:JSP文件只是模板。在发送给客户作为回复之前,它们会被完全渲染。

你是否有过这样的感觉:你知道自己遗漏了一些重要的东西,但很明显,在被指出之前,你永远不会想到它?就是这样——我一直假设JSP是以HTML的方式呈现在客户端的,我甚至没有意识到它是先在服务器端处理的。JS在struts2标记中不可用现在是非常有意义的,因为当它到达检查函数的点时,它已经在客户端,并且已经做出了渲染决策。谢谢你的解释;“如果可以的话,我会投两次以上的票。”NickReed我每天都有4-5倍的感觉,如果你问我的朋友的话,感觉会更好。但你的解释是一针见血的。