我正在尝试了解有关JSP表达式评估的更多信息。确定如何以及哪些变量在表达式的访问范围内?
我有一个简单的JSP(ELEvaluator是一个方便的包装器)
<% String foo = "bar"; %>
<%= ELEvaluator.evaluate("${foo}", request, pageContext) %> //-> blank
<%= ELEvaluator.evaluate("${1 + 1}", request, pageContext %> // -> 2
这些vars / objs是否必须存在于请求obj上?或者使用pageContext / Evaluator注册?
由于
答案 0 :(得分:6)
${foo}
表示
因此,如果您希望某些对象可供EL使用,请将其存储在适当的范围内:
pageContext.setAttribute("foo", theObject);
// or
request.setAttribute("foo", theObject);
// or
session.setAttribute("foo", theObject);
// or
servletContext.setAttribute("foo", theObject);