Java自定义标签GetProperty实现属性获取
需积分: 10 105 浏览量
更新于2024-11-05
收藏 1KB TXT 举报
"GetProperty_java(cusTag).txt"
在Java中,`GetProperty` 是一个自定义标签库中的类,用于从JSP页面上下文中获取对象的属性值并将其输出到页面。这个类继承自 `BodyTagSupport`,是JSP标准标签库(JSTL)的一部分,允许开发者创建自定义的行为来扩展JSP的功能。
`GetProperty` 类包含两个私有成员变量:
1. `name`:表示要在页面上下文中查找的对象的名称。
2. `property`:要从该对象中获取的属性名。
这两个变量都有对应的setter方法,即 `setName` 和 `setProperty`,以便在使用标签时设置它们的值。
`doStartTag()` 方法是关键操作方法,它遵循以下步骤:
1. 使用 `pageContext.findAttribute(name)` 查找由 `name` 指定的对象。如果找不到对象,返回 `SKIP_BODY`,表示跳过标签体的处理。
2. 获取对象的类 `Class c = obj.getClass()`。
3. 动态构建 "get" 加上属性名首字母大写的属性获取方法名,例如,如果属性名为 "age",则方法名为 "getAge"。这是通过 `getMethodName` 变量完成的。
4. 使用反射的 `getMethod` 方法找到该属性的 getter 方法,参数列表为空。
5. 调用 `getMethod.invoke(obj)` 来执行 getter 方法,获取属性值,并通过 `pageContext.getOut().print()` 将结果输出到页面。
6. 同时,也将属性名和属性值打印到控制台,便于调试。
`doEndTag()` 方法简单地返回 `EVAL_PAGE`,意味着在处理完此自定义标签后,继续评估页面的剩余部分。
这个自定义标签的用法可能如下:
```jsp
<lin:getProperty name="myObject" property="myProperty" />
```
在这个例子中,`myObject` 应该是在JSP页面上下文中已存在的一个对象,而 `myProperty` 是该对象的一个属性。`GetProperty` 标签将尝试获取 `myObject` 的 `myProperty` 属性值,并将其显示在页面上。
总结来说,`GetProperty` 类提供了一种方便的方式,通过JSP标签来动态获取和输出对象的属性值,这在处理复杂页面逻辑和数据展示时非常有用。使用反射和JavaBeans规范的getter方法,它可以灵活地适应不同的对象结构。
2019-03-06 上传
2020-02-21 上传
2022-09-22 上传
2010-05-11 上传
2010-05-11 上传
2021-08-11 上传
2023-06-10 上传
2023-06-09 上传
lin36093705
- 粉丝: 4
- 资源: 53
最新资源
- 几乎所有的findIndex练习:Springboard软件工程职业生涯跟踪子单元8.2的练习
- pyg_lib-0.2.0+pt20cpu-cp310-cp310-linux_x86_64whl.zip
- Gravity-Game
- LiveCue-开源
- shield-db::shield_selector:Shield DB,Dot Shield使用的广告和跟踪器的数据库
- swift-boilerplate:使用文件和项目模板节省创建Swift应用程序的时间
- espriturc:预订土耳其语课程的网站
- ANNOgesic-0.7.29-py3-none-any.whl.zip
- angular-remove-diacritics:角度服务可消除字符串中的重音符号
- 减去图像均值matlab代码-PCA-Image-Compression:PCA-图像压缩
- test-msw
- chipster-web
- smart-contract-tutorial:该存储库包含我们的文章https中使用的完整代码
- xderm-mini
- Inventory_management:Etsy小型企业的库存管理
- HFTuner:免提吉他调音器!