【问题标题】:get attribute value of a component tag获取组件标签的属性值
【发布时间】:2014-12-27 15:46:33
【问题描述】:

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

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

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

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

我需要将name 的值分配为标签&lt;a&gt;name 属性。

【问题讨论】:

    标签: java attributes tags wicket


    【解决方案1】:

    正如我从您的问题中意识到的那样,您需要动态地获取/设置检票口组件的标签参数。

    因此,您有多种选择:

    1. 使用AttributeModifier 静态方法,如#append("class", "appendedClass")#replace("name", "#")其中第一个参数是标签的属性,第二个是它的值)设置您想要标记的任何值,但请注意,您无法使用此方法获取标签的当前值。另外,请注意不要在“render”方法中添加此修饰符(例如#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里面有很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      相关资源
      最近更新 更多