使用EL表达式获取项目路径

比如,项目名为JavaWeb。获取"/JavaWeb"的正确方式为:

${pageContext.request.contextPath}

使用${requestScope.contextPath}的方式是错误的。

requestScope 只是代表Request范围。使用${requestScope["属性"]}或者${request.属性}的方式,只是获取request范围内的属性值。

contextPath可以理解为是request对象的成员变量(也是属性,只是为JavaBean的属性。和Attribute属性值不同)。EL表达式可以直接获取JavaBean的属性值,但是你要有request属性,而非一个requestScope范围。

pageContext等同于页面的pageContext对象,它不是范围。使用pageContext的方法:getRequest()可以获得request对象。这就是说,PageContext也是一个JavaBean,request是其的成员变量。使用el表达式:${pageContext.request}就是使用pageContext.getRequest()方法来获取request对象。

所以,${pageContext.request.contextPath}就不难理解了。它就是使用el表达式获取JavaBean属性。

你可能感兴趣的:(EL,JavaBean,java,web,JAVA)