Java jsp标记中的动态属性
我想要一个具有动态属性的标签,比如简单的html标签,例如类似这样的东西: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
<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和标记。