【发布时间】:2023-04-07 11:58:01
【问题描述】:
我想要一个带有动态属性的标签,比如简单的 html 标签,例如是这样的:
<tags:superTag dynamicAttribute1="value" someOtherAttribute="valueOfSomeOther"/>
在我的标签实现中,我想要这样的东西:
public class DynamicAttributesTag {
private Map<String,String> dynamicAttributes;
public Map<String, String> getDynamicAttributes() {
return dynamicAttributes;
}
public void setDynamicAttributes(Map<String, String> dynamicAttributes) {
this.dynamicAttributes = dynamicAttributes;
}
@Override
protected int doTag() throws Exception {
for (Map.Entry<String, String> dynamicAttribute : dynamicAttributes.entrySet()) {
// do something
}
return 0;
}
}
我想指出的是,这些动态属性将在 jsp 中手动编写,而不仅仅是像 ${someMap} 这样的 Map 传递。那么有什么办法可以实现呢?
【问题讨论】:
-
如果我理解正确,这可以通过 TLD 中的
<dynamic-attributes>标签来完成。对于“jsp 动态属性示例”,Google 为您提供了几个有希望的结果。 -
@icke 是的,这正是我所需要的。非常感谢你。您可以将其添加为答案,我会接受,但您能否为未来的读者提供一些示例?基本上它只是在TLD中实现接口DynamicAttributes和标签
。