Java 是否可以在jsp标记库中创建自定义属性而不定义setter方法?

Java 是否可以在jsp标记库中创建自定义属性而不定义setter方法?,java,jsp,Java,Jsp,如果业务逻辑保持不变,我不想在添加标记时更改java代码。我可以使用枚举属性集(request.getAttributeNames())访问它 e、 g 我希望通过以下方式添加,而不是在内部使用逗号分隔: 因此,我可以迭代并检查属性名是否包含“内部”单词,并将其存储在映射中,然后将其发送到报表。它还可以帮助我在不更改java代码的情况下定义新属性 有没有办法在jsp标记库中创建自定义属性而不定义setter方法?您要查找的是所谓的“动态属性” 请参阅上一个问题,了解如何执行此操作: 本

如果业务逻辑保持不变,我不想在添加标记时更改java代码。我可以使用枚举属性集(request.getAttributeNames())访问它

e、 g


我希望通过以下方式添加,而不是在内部使用逗号分隔:

因此,我可以迭代并检查属性名是否包含“内部”单词,并将其存储在映射中,然后将其发送到报表。它还可以帮助我在不更改java代码的情况下定义新属性


有没有办法在jsp标记库中创建自定义属性而不定义setter方法?

您要查找的是所谓的“动态属性”

请参阅上一个问题,了解如何执行此操作:

本质上,你加上

<dynamic-attributes>true</dynamic-attributes>
true
.tld
描述符,指示任何旧属性都可以传递到标记。然后,标记类必须实现,未声明的属性将作为映射传递到标记:

为标记声明其接受 动态属性,它必须实现 这个界面。标记的条目 在标记库中,描述符必须 也可以配置为指示动态 属性被接受

对于任何未声明的属性 在该文件的标记库描述符中 标记,而不是在 翻译时间 setDynamicAttribute()方法是 调用,并使用 属性这是我们的责任 要记住名称和名称的标签 动态属性的值


@斯卡夫曼:这是我的愚蠢。我必须仔细阅读这份文件。谢谢你,斯卡夫曼,很管用。
<car:built maker="ford" wheel="four" name="endeavor" engine="dohc" power="72bhp"
tyre="4" interior-mobile-charger="true" interior-cigratte-lighter="true" 
interior-music-player-maker="JVC"  interior-music player-bass="true"/>
<dynamic-attributes>true</dynamic-attributes>