【发布时间】:2012-05-16 07:58:00
【问题描述】:
我有一个从 servlet 传递变量的.jsp 页面。
假设我有一个.jsp 页面,例如
...
<body>
${Variable}
</body>
...
我们还假设variable = "oh my god"。还行吧。但是我怎样才能把这个变量放到浏览器会显示变量值的.html页面呢?
【问题讨论】:
我有一个从 servlet 传递变量的.jsp 页面。
假设我有一个.jsp 页面,例如
...
<body>
${Variable}
</body>
...
我们还假设variable = "oh my god"。还行吧。但是我怎样才能把这个变量放到浏览器会显示变量值的.html页面呢?
【问题讨论】:
long taskId = 223;
//
<input type="hidden" name="taskId" value=<%=taskId%> />
【讨论】:
虽然这个问题很老,但我认为它仍然是实际的,所以我会尝试从我的角度做出贡献。
问题很简单,我认为大多数答案只是回答不同的问题 - 因此 - 提供有点混乱。
据我了解,这个问题是:
我可以在 html 中有一个动态的 JSP 变量(顺便说一句,Expression Lnaguage 的一个元素),就像我在 jsp 中一样吗?
答案是否。
JSP 转换为 Java Server Pages,这就是这里的重点,即生成动态值并将其提供给 server 上的 jsp边。你不能让你的 html 动态化。
【讨论】:
在访问 html 中的变量之前,您需要初始化变量,然后在另一个 JSP 代码块中进行任何计算和其他修改。现在您可以访问 html 中的变量。 这是我对 Stackoverflow.com 的第一个回答,请专家告知我所犯的错误。
<body>
<% java.lang.Integer var=0; %>
<%
int a;
int b;
var=a+b;
%>
<% out.print(var);%>
</body>
【讨论】:
实际上,目前在此处发布的最佳投票答案和解决方案 (<%= Variable %>) 与您在问题中提供的代码 (${Variable}) 完全相同。唯一的区别是应该使用你的,因为它更具可读性而且不是任何该死的小脚本!
就我的观点而言,如果您想在播放 html 页面中使用 JSP 变量,您将需要 javascript 从 jsp 呈现的 html 中检索该变量,并将其保存在实际的 newPage.html 中。您可以将隐藏的 iframe 放入该 newPage.html,将 jsp 页面作为该 iframe 的源嵌入其中,然后使用例如解析其 html。 getElementById()
【讨论】:
${Variable} 有问题。如果您设置的变量不是已定义的属性,则在使用表达式语言时该变量为空,并且它仅适用于 至于完全避免使用 Scriptlets... 我正在做的事情没有不支持 jstl 核心。糟透了。但我无法避免 scriptlet,除非完全重新排列代码以避免任何实际逻辑。
有两种选择,使用scriptlets 或expression language,我建议使用expression language。
很好地了解为什么Scriptlets are Bad
【讨论】:
你需要这样做:
<%= Variable %>
生成的 HTML 将是:
<body>
oh my god
</body>
【讨论】: