2

有没有办法将自定义 HTML 添加到反馈面板?

如中所示,我不想只将<span>元素添加到为每个添加的消息创建的 FeedbackPanel,而是添加a和.<li><div><button><span>

所以我正在寻找类似于validationErrorFeedback.error(message);我的 HTML 的消息。这可能吗?

4

2 回答 2

4

您可以子类化FeedbackPanel并因此提供您自己的标记。只需根据需要复制FeedbackPanel.html和编辑标记(组件层次结构必须仍然相同)。

于 2012-10-30T20:59:14.673 回答
3

最简单的查找方法是调用

feedbackPanel#setEscapeModelStrings(false)

但是如果你这样做,如果你有任何显示输入的验证器,你的应用程序很容易受到跨站点脚本攻击。例如,如果您有一个使用 EmailAddressValidator 的文本字段并且用户输入“Joe”,则验证器的错误消息将显示为:

'${input}' is not a valid email address.

这将返回“乔”不是一个有效的电子邮件地址。但是 - 攻击者可以很容易地通过<script>alert('xss')</script>例如传递来注入 XSS 有效负载,该有效负载不再被转义。

如果你能保证你的验证器不会回显这个输入 - 继续使用它。否则,您需要按照 Leiter 先生的建议进行操作,并使用您自己的标记将 FeedbackPanel 子类化。在 wicket 1.5.x 中,这看起来像:

<html xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:panel>
  <ul wicket:id="feedbackul" class="feedbackPanel">
    <li wicket:id="messages" class="errorlevel">
      <span wicket:id="message" class="errorlevel">A message</span>
    </li>
  </ul>
</wicket:panel>
</body>
</html>
于 2012-10-30T21:28:19.490 回答