Struts2:Struts2在jsp中使用标签时值的获取

时间:2021-11-30 01:50:42

在OGNL的使用中,需要访问一系列的对象,这些对象放在OGNL的context中,context是一个Map结构,实际上它和ActionContext是相应的。

当用户发送请求时,struts会创建ActionContext、ValueStack、action对象,action对象放在ValueStack对象中,ValueStatck放在ActionContext中。

Struts2:Struts2在jsp中使用标签时值的获取

其中,ValusStack是OGNL的context对象的根对象。因此在JSP页面访问ValueStack内的属性时不需要“#”,而访问context的其他属性(如request)时必须使用“#”。

context除了ValueStack对象以外,还有以下对象:

  1. Parameters:用于访问HTTP请求参数,如#parameters['id']或#parameters.id,相当于HttpServletRequest.getParameter()方法。
  2. Request:用于访问HTTP请求属性,如#request['user']或#request.user,相当于HttpServletRequest.getAttribute()方法。
  3. Session:用于访问session属性。如:#session['user']或#session.user,,相当于HttpSession.getAttribute()方法。
  4. Application:用于访问application属性。#application['user']或#application.user,,相当于ServletContext.getAttribute()方法。
  5. Attr:比如直接获取user属性“#user”,如果PageContext可用,则访问PageContext,否则一次搜索request、session、application对象。