首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扩展不带< wicket :子/>标记的基本wicket html

扩展不带< wicket :子/>标记的基本wicket html
EN

Stack Overflow用户
提问于 2019-10-16 16:08:31
回答 2查看 174关注 0票数 0

如果基本wicket不包含<wicket:child/>标签,是否可以扩展现有wicket (=在现有wicket html中追加额外的属性/文本框)?

例如,我想扩展一些使用以下html的java类:

代码语言:javascript
复制
<wicket:panel>
  <div class="field-wrapper"><input wicket:id="field1" type="text"/></div>
  [I WANT TO INJECT ANOTHER TEXTBOX HERE]
</wicket:panel>

我的扩展类继承了继承类的所有基属性,并且我声明了一个附加属性。但我不知道是否/如何在基本html中添加附加属性,而不必克隆整个原始html并添加我的新属性,这不是一个优雅的解决方案。

有没有什么事件可以在解析/渲染之前修改原始的html (注入我的属性)?

EN

回答 2

Stack Overflow用户

发布于 2019-10-16 16:33:31

您可以覆盖#getMarkup()方法并修改其结果,但这比只提供一个包含修改的完整.html文件要麻烦得多。

提供你自己的标记文件对我来说是非常优雅的!

票数 2
EN

Stack Overflow用户

发布于 2019-10-28 00:56:44

要做到这一点,一种方法是在基页中定义一个方法,该方法返回一个片段,该片段将被插入到下面的“childContent”中:

代码语言:javascript
复制
<wicket:panel>
  <div class="field-wrapper"><input wicket:id="field1" type="text"/></div>
  <div wicket:id="childContent"></div>
</wicket:panel>

因此,在您的基页中,您将具有此函数,该函数默认返回null,但扩展页可以覆盖它以提供其自己的特定内容:

代码语言:javascript
复制
protected Fragment getChildContent() { return null; }

您的基页将按如下方式使用它:

代码语言:javascript
复制
Fragment childContent = getChildContent();
        if(childContent != null) {
            addOrReplace(childContent);
        } else {
            addOrReplace(new WebComponent("childContent").setVisible(false));
        }

在扩展页面中,您可以使用它自己的html定义一个片段,并覆盖getChildContent()方法以返回它。希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58408585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档