使用表达式语言(EL),合并范围项是它们所引用的对象中属性的值映射。例如,requestScope是请求对象中值的映射表示。在页面上非常清晰地解释了这一点:Java
Servlet和JSP。如果通读EL部分,您会在这里注意到关于请求vs请求范围的一点:requestScope不是request
object。
我建议您通读此页面,以大致上更好地了解servlet / jsp。
就ActionContext与这些项目的关系而言,它实际上是struts用来封装servlet的包装器。您可以在此处阅读有关它的更多详细信息:访问应用程序,会话,请求对象。
这里给出了一些对隐式值的引用,但是我觉得仅仅说它是隐式的并不能解释太多。使用EL访问servlet变量时,可以显式声明要引用的范围,例如:
${requestScope.myVariable}您也可以通过省略范围来隐式引用它:
${myVariable}现在,这里可能出现的问题是,具有相同名称的变量可能导致冲突。EL将按特定顺序检查隐式值:pageScope,requestScope,sessionScope和applicationScope,param,paramValues,标头,标头值,initParam,cookie,pageContext。这意味着如果请求范围中的变量与会话或应用程序范围中的变量具有相同的名称,则将引用请求范围的值。



