在下面的代码片段中,其目的是从变量中获取名称的值,但是当尝试使用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 %>