得到属性的组件标签

问题描述:

在检票口,我需要得到一个组件的标记标签的值的值,例如:得到属性的组件标签

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

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

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

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

正如我从你的问题中意识到的那样,你需要对你的导叶组件的标签参数进行昼夜的设置。

所以,你有几种选择来做到这一点:

  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. 使用相同的方法如上,但trhough的BehavioronComponentTag方法不覆盖组件的一个。
  2. 阅读this了解更多信息,但请注意,这是相当古老的文章,对于较新的Wicket版本,可能会有所不同。 (例如,已经不需要使用AttributeAppender,因为它已移至AttributeModifier类方法)。

    另外,你可以看到thisthis的例子。有很多在谷歌。

开始=>