java开始面试的第17天.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【Java面试知识点详解】 在Java面试的第17天,我们关注的是OGNL(Object-Graph Navigation Language)这一关键概念,它是Struts2框架中的核心组件。OGNL是一种强大的表达式语言,用于在对象图中导航并操作数据。它允许开发者以简洁的方式访问和修改对象的属性,类似于EL(Expression Language)。 1. **OGNL简介** - OGNL是Object Graphics Navigation Language的缩写,其主要功能是在对象模型中导航,查找和设置值。 - OGNL被设计用来处理复杂的对象结构,通过简单的表达式就能访问和修改对象的属性或方法。 - 在Struts2框架中,OGNL作为视图层和控制器层之间的桥梁,用于传递数据和执行方法。 2. **OGNL的构成** - OGNL引擎:负责解析和执行OGNL表达式,它能动态地访问和修改对象的属性。 - Root存储区:存储一个Object类型的对象,通过"属性"格式的OGNL表达式来访问其数据。 - Context存储区:存储一个Map类型的对象,使用"#{key}"格式的OGNL表达式来访问其中的数据。 3. **代码分析** - 示例代码展示了如何使用OGNL获取和打印对象的属性值。 - `Map<String, Object> ctx` 创建了上下文对象,用于存放数据。 - `root.setName("bar")` 初始化了一个名为Bar的对象,并设置了name属性。 - `Ognl.getValue("name", ctx, root)` 从root对象中获取name属性的值并打印,不使用"#"前缀。 - `Ognl.getValue("#num", ctx, root)` 从上下文对象ctx中获取键为"num"的值并打印,使用"#"前缀表明从Context中取值。 4. **编程题解析** - 重构NETCTOSS资费列表显示,实现分页功能,使用Struts2的标签和OGNL。 - `<s:iterator>`标签用于遍历集合,将当前元素压入root栈顶,允许通过属性名访问元素属性。 - `<s:if>`和`<s:else>`标签用于条件判断,通过OGNL表达式进行逻辑控制。 - 页面结构和样式通常包含在HTML中,如示例代码所示,使用Struts2标签库来渲染数据。 在实际面试中,理解并能熟练应用OGNL对于Java Web开发岗位至关重要,因为它是Struts2和其他基于Java的MVC框架中常用的数据绑定和表达式语言。深入理解OGNL的工作原理、语法以及如何在实际项目中应用,可以帮助开发者更高效地进行数据交互和视图层的构建。
- 粉丝: 62
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助