Struts2:Struts2在jsp中使用标签时值的获取
在OGNL的使用中,需要访问一系列的对象,这些对象放在OGNL的context中,context是一个Map结构,实际上它和ActionContext是相应的。
当用户发送请求时,struts会创建ActionContext、ValueStack、action对象,action对象放在ValueStack对象中,ValueStatck放在ActionContext中。
其中,ValusStack是OGNL的context对象的根对象。因此在JSP页面访问ValueStack内的属性时不需要“#”,而访问context的其他属性(如request)时必须使用“#”。
context除了ValueStack对象以外,还有以下对象:
- Parameters:用于访问HTTP请求参数,如#parameters['id']或#parameters.id,相当于HttpServletRequest.getParameter()方法。
- Request:用于访问HTTP请求属性,如#request['user']或#request.user,相当于HttpServletRequest.getAttribute()方法。
- Session:用于访问session属性。如:#session['user']或#session.user,,相当于HttpSession.getAttribute()方法。
- Application:用于访问application属性。#application['user']或#application.user,,相当于ServletContext.getAttribute()方法。
- Attr:比如直接获取user属性“#user”,如果PageContext可用,则访问PageContext,否则一次搜索request、session、application对象。
联系方式:wuchaodzxx@126.com
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· .NET 9.0 使用 Vulkan API 编写跨平台图形应用
· 终于决定:把自己家的能源管理系统开源了!
· [.NET] 使用客户端缓存提高API性能
· AsyncLocal的妙用
· .NetCore依赖注入(DI)之生命周期