在 wicket 中我需要获取组件标记标签的值,例如:
<a href="#" name="#">...</a>
在这里,我需要 name
的值Wicket java 类中的属性,例如:
String name = /*{link's tag name}*/;
我需要分配 name
的值为 name
标签的属性 <a>
.
最佳答案
正如我从您的问题中了解到的,您需要以动态方式获取/设置 wicket 组件的标记参数。
因此,您有多种选择来执行此操作:
使用
<AttributeModifier
静态方法,例如#append("class", "appendedClass")
或#replace("name", "#")
(第一个参数是标签的属性,第二个参数是它的值)来设置你想要标签的任何值,但请注意你不能用这个获取标签的当前值方法。另外,注意不要在“渲染”方法(例如#onConfigure()
)中添加此修饰符,不要在浏览器中的每个页面或组件的刷新中创建重复的修饰符。像这样覆盖
#onComponentTag()
方法。
...new Link ( "link" ) {
@Override
protected void onComponentTag ( final ComponentTag tag )
{
super.onComponentTag ( tag ); // you should always call super.
tag.getName (); // get name of the tag: a/div/span..
tag.setName ( "span" ); // set tag's name.
tag.getAttribute ( "name" ); // get 'name' attribute's value.
tag.put ( "name", "#" ); // set 'name' attribute's value
}
}
- 使用与上述相同的方法,但通过
Behavior
的onComponentTag
方法不要覆盖组件的方法。
阅读this了解更多信息,但请注意,这是一篇相当陈旧的文章,对于较新的 Wicket 版本,某些内容可能会有所不同。 (例如,已经不需要使用 AttributeAppender
,因为它已移至 AttributeModifier 类方法)。
关于java - 获取组件标签的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26672703/