java - 获取组件标签的属性值

标签 java attributes tags wicket

在 wicket 中我需要获取组件标记标签的值,例如:

<a href="#" name="#">...</a>

在这里,我需要 name 的值Wicket java 类中的属性,例如:

String name = /*{link's tag name}*/;

我需要分配 name的值为 name标签的属性 <a> .

最佳答案

正如我从您的问题中了解到的,您需要以动态方式获取/设置 wicket 组件的标记参数。

因此,您有多种选择来执行此操作:

  1. 使用 AttributeModifier 静态方法,例如 #append("class", "appendedClass")#replace("name", "#")(第一个参数是标签的属性,第二个参数是它的值)来设置你想要标签的任何值,但请注意你不能用这个获取标签的当前值方法。另外,注意不要在“渲染”方法(例如#onConfigure())中添加此修饰符,不要在浏览器中的每个页面或组件的刷新中创建重复的修饰符。

    <
  2. 像这样覆盖 #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
        }
    }        
  1. 使用与上述相同的方法,但通过 BehavioronComponentTag 方法不要覆盖组件的方法。

阅读this了解更多信息,但请注意,这是一篇相当陈旧的文章,对于较新的 Wicket 版本,某些内容可能会有所不同。 (例如,已经不需要使用 AttributeAppender,因为它已移至 AttributeModifier 类方法)。

此外,您还可以看到 thisthis例子。 google 里有很多。

关于java - 获取组件标签的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26672703/

相关文章:

java - 在 Google App Engine 中使用 JDO 定义的集合中保留任意顺序

javascript - 脚本标签中属性的顺序重要吗?

html - 简单的 HTML DOM 获取元标记的特殊属性的值

python 如何检查打开和关闭标签

php - 一页中的三个 HTML 标记

java - 从 index.jsp 编辑值

java - 什么更快? System.currentTimeMillis() 或 Date().getTime()?

java - 在执行和完成时检索线程 ID? java

JavaScript 对象 : a function or method in an attribute

arrays - 如何在 angular2 的 ngFor 中显示 1 个元素?