Java jsp标记中的动态属性

Java jsp标记中的动态属性,java,jsp,Java,Jsp,我想要一个具有动态属性的标签,比如简单的html标签,例如类似这样的东西: <tags:superTag dynamicAttribute1="value" someOtherAttribute="valueOfSomeOther"/> public class DynamicAttributesTag { private Map<String,String> dynamicAttributes; public Map<String, Stri

我想要一个具有动态属性的标签,比如简单的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;
    }
}

在我的tag实现中,我希望有如下内容:

<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;
    }
}
公共类DynamicAttributesTag{
私有地图;
公共地图getDynamicAttributes(){
返回动态属性;
}
公共void集合dynamicAttributes(映射dynamicAttributes){
this.dynamicAttributes=dynamicAttributes;
}
@凌驾
受保护的int doTag()引发异常{
对于(Map.Entry dynamicAttribute:dynamicAttributes.entrySet()){
//做点什么
}
返回0;
}
}

我想指出的是,这些动态属性将在jsp中手工编写,而不仅仅是像
${someMap}
那样作为Map传递。那么有什么方法可以实现这一点呢?

您必须在TLD中启用动态属性,如下所示:

<tag>
    ...
    <dynamic-attributes>true</dynamic-attributes>
</tag>

如果我理解正确,这可以通过TLD中的
标记来完成。对于“jsp动态属性示例”,Google提供了几个有希望的结果。@是的,这正是我需要的。非常感谢你。你可以把它作为一个答案,我会接受的,但你能不能也为未来的读者提供一些例子?基本上,它只是在TLD中实现接口DynamicAttribute和标记。