在下面的代码片段中,其目的是从变量中获取名称的值,但是当尝试使用EL时,不会输出任何值,而直接赋值可以正常工作。

<%! String sName; %>
<%  sName="ABC"; %>
<H3> Hello <c:out value="${sName}"/> </H3>
<H3> Hello <c:out value="ABC"/> </H3>


这里缺少什么或出错了?

提前致谢。

最佳答案

当您编写${sName}时,并不意味着该页面将查找名称为sName的局部变量。您拥有的局部变量无关紧要。

您可以将sName设置为稍后使用,例如scriptlet中的request.setAttribute("sName", "some value")。或者,您可以使用jstl标记:<c:set var="sName" value="some value"/>

如前所述,还有一个选项可以使用scriptlet打印局部变量的值:<%= sName %>

10-06 13:48