0

在 jsp A 中,我有这样的声明:

<c:set var="prefix" value="fe" />

在 jsp A 中,我包含 jsp B,然后在 B 中,我这样做:
alert(${prefix});

我得到:'fe' in undefined 我怎样才能得到jsp B中变量前缀的值?

4

2 回答 2

4

您可以将变量的范围设置为请求:

<c:set var="prefix" value="fe" scope="request"/>

此外,请确保您使用的是 include 指令而不是 include 标准操作。该指令发生在翻译时,因此包含文件中定义的变量可用于包含文件,但包含标准操作实际上在运行时插入来自包含文件的响应,因此无法访问包含文件中设置的变量。简单地说使用这个:

<%@include file="myinclude.jsp" %>

而不是这个:

<jsp:include page="myinclude.jsp" />
于 2013-03-22T16:04:29.640 回答
1

也许,当 jsp 被渲染时,alert(${perfix})被评估为alert(fe). 您收到的错误是 javascript 错误,因为fe您的代码中可能没有定义任何内容。

您可能想要做的是将其更改为

<c:set var="prefix" value="'fe'" />

所以它在Javascript中被评估为字符串。

于 2013-03-22T21:30:27.507 回答