已编辑
JSTL 标准无法做到这一点。
使用scriptlet,无论是一行<% =%>还是更多<% %>,JSP都会经过JSP页面的翻译阶段,然后编译成一个servlet。
在翻译过程中指令插入到 Scriptlet _jspService() 方法中的方式与网页上的相同。 _jspService()方法对应JSP页面的body。
在您的情况下,就像生成这样的一行:
out.write("<a href=\" + UrlConstants.ADJUSTMENT_NOTE_LEDGER_SUGGEST_BOX + "\" >Load Demo</a>" );
所以这适用于 scriptlet。与 JSTL 有点不同。
EL 允许页面作者使用表达式来动态读取存储在 JavaBeans 组件、各种数据结构和隐式对象中的应用程序数据。
这些表达式在适当的时间进行评估,并支持立即和延迟评估。
立即评估意味着在第一次呈现页面后立即评估表达式并返回结果。
延迟评估意味着使用表达式语言的技术可以在页面生命周期后期的某个时间使用自己的机制来评估表达式,只要合适的话。以 JavaServer Faces 技术为例。
所有使用${} 语法的表达式都会被立即计算,这是由ELResolver、ELContext 和其他对象生成的。 EL 机制的核心是可扩展的 ELResolver 类。
实现 ELResolver 的类定义了如何解析引用特定类型的对象或属性的表达式。在下面的表达式中,第一次调用BeanELResolver 实例来查找基础对象employee,它是一个JavaBeans 组件。解析器找到对象后,会再次调用它来解析雇员对象的属性 lName。
${employee.lName}
统一的 EL 包括一组标准解析器实现:ArrayELResolver、BeanELResolver、ListELResolver、MapELResolver 和 ResourceBundleELResolver。 JSP 2.1 提供了两个 EL 解析器来处理引用这些对象的表达式:ImplicitObjectELResolver 和 ScopedAttributeELResolver。
根据使用统一 EL 的技术,其他解析器可能可用。此外,应用程序开发人员可以添加他们自己的ELResolver 实现,通过向应用程序注册它们来支持统一 EL 尚不支持的表达式解析。
因此,默认情况下,EL 不会评估您想要的模式的常量值。
查看此链接了解更多详情:http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html
看到这个链接How to reference constants in EL?有几个选项可以解决你的问题