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

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

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

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

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

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

解决方法:

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

因此,您有几种选择可以执行此操作:

>使用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
        }
    }        

>使用与上述相同的方法,但是通过行为的onComponentTag方法不要覆盖组件的方法.

阅读this以获取更多信息,但是请注意,这是一篇相当老的文章,并且对于较新的Wicket版本可能有所不同. (例如,由于已将AttributeAppender移至AttributeModifier类方法,因此无需使用AttributeAppender).

另外,您可以看到thisthis的示例.谷歌中有很多.

上一篇:CodeGo.net>如何使TagLib#在具有错误扩展名的文件上工作?


下一篇:git tag 重写