定义一个jsp标记,它可以接受一些未在tld文件中声明的额外属性

时间:2012-02-15 07:27:52

标签: java jsp jsp-tags

我想定义一个jsp标记,它可以接受一些未在.tld文件中声明的额外属性。有可能吗?

我想要这个,因为我想定义一个<cms:img>标记,它会生成一个html img标记。用户可以传递一些属性,但我不想限制用户,我希望他们可以像普通的html img标签一样使用它。

例如,用户可以使用此标记并传递一些必需的信息:

<cms:img id="111" />

将生成html img标记为:

<img src="/show_images?id=111" />

我需要的只是id属性。

但是用户可能会将其视为普通的html img标记,并将一些额外的属性传递给它,例如:

<cms:img id="111" width="100px" height="100px" style="..." more attributes .. />

我不想在我的标签中声明其他属性,因为有太多,用户可能有自己的自定义属性。

所以我想知道:我可以在jsp标记中声明id属性,但让它接受所有其他未声明的属性吗?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。这些被称为动态属性。见http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html#wp89775

  

动态属性(可选)

     

指示此标记是否支持   动态名称的其他属性。该值标识a   scoped属性,用于放置包含名称和的Map   在调用标记期间传递的动态属性的值。   如果动态属性的值为,则会产生转换错误   标签指令等于给定变量的名称值   指令或属性指令的name属性的值。