在 jsp A 中,我有这样的声明:
<c:set var="prefix" value="fe" />
在 jsp A 中,我包含 jsp B,然后在 B 中,我这样做:
alert(${prefix});
我得到:'fe' in undefined
我怎样才能得到jsp B中变量前缀的值?
在 jsp A 中,我有这样的声明:
<c:set var="prefix" value="fe" />
在 jsp A 中,我包含 jsp B,然后在 B 中,我这样做:
alert(${prefix});
我得到:'fe' in undefined
我怎样才能得到jsp B中变量前缀的值?
您可以将变量的范围设置为请求:
<c:set var="prefix" value="fe" scope="request"/>
此外,请确保您使用的是 include 指令而不是 include 标准操作。该指令发生在翻译时,因此包含文件中定义的变量可用于包含文件,但包含标准操作实际上在运行时插入来自包含文件的响应,因此无法访问包含文件中设置的变量。简单地说使用这个:
<%@include file="myinclude.jsp" %>
而不是这个:
<jsp:include page="myinclude.jsp" />
也许,当 jsp 被渲染时,alert(${perfix})
被评估为alert(fe)
. 您收到的错误是 javascript 错误,因为fe
您的代码中可能没有定义任何内容。
您可能想要做的是将其更改为
<c:set var="prefix" value="'fe'" />
所以它在Javascript中被评估为字符串。