Wicket 更改组件';加载其模型失败时,在渲染阶段删除其内容
我有一个具有简单标记继承的小部件组件,如下所示 抽象控件Wicket 更改组件';加载其模型失败时,在渲染阶段删除其内容,wicket,Wicket,我有一个具有简单标记继承的小部件组件,如下所示 抽象控件 LabelWidget 现在,假设标签内容取自可加载的可分离模型,加载该模型会引发异常 我需要向用户展示一些关于这个“坏”小部件组件的反馈。当加载其模型引发异常时,是否有方法替换整个子对象的内容 请注意,LabelWidget只是许多AbstractWidget孩子中的一个,因此我需要在AbstractWidget中解决这个问题,并且我还需要保留AbstractWidget组件中的所有元素。您可以通过使用一个更智能的模型来实现这一
LabelWidget
现在,假设标签内容取自可加载的可分离模型,加载该模型会引发异常
我需要向用户展示一些关于这个“坏”小部件组件的反馈。当加载其模型引发异常时,是否有方法替换整个子对象的内容
请注意,
LabelWidget
只是许多AbstractWidget
孩子中的一个,因此我需要在AbstractWidget
中解决这个问题,并且我还需要保留AbstractWidget
组件中的所有元素。您可以通过使用一个更智能的模型来实现这一点,该模型委托给原始模型并如果抛出异常,请尝试/捕获。在异常情况下,您需要返回一个“空”模型对象,其中“空”对于您的不同用例意味着不同的事情
您的智能模型可以实现IComponentAssignedModel
,以便了解所使用的组件。这样,在catch
子句中可以执行component.error(“…”)
。在AbstractWidget
中,您应该添加一个反馈面板
,该面板将呈现错误消息。专门化小部件(如LabelWidget
)将通过使用回退模型呈现为“空”(无论这对它意味着什么)
<wicket:panel>
<wicket:child />
<div wicket:enclosure="editButton" class="widget-edit-wrapper">
<button wicket:id="editButton" type="button" class="widget-edit">
<span class="glyphicon glyphicon-cog"></span>
</button>
<div style="display:none;">
<div wicket:id="editPanel" class="widget-settings"></div>
</div>
</div>
</wicket:panel>
<wicket:extend>
<div wicket:id="container" class="label-widget flex-container">
<div wicket:id="label"></div>
</div>
</wicket:extend>