首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Wicket -将HTML添加到反馈面板

Apache Wicket -将HTML添加到反馈面板
EN

Stack Overflow用户
提问于 2012-10-31 04:08:38
回答 2查看 3.5K关注 0票数 2

有没有办法将定制的超文本标记语言添加到FeedbackPanel中?

与中一样,我希望添加一个具有<button><span><div>,而不是只将<span>元素添加到FeedbackPanel为每个添加的消息创建的<li>中。

所以我正在寻找像validationErrorFeedback.error(message);这样的东西,其中消息将是我的超文本标记语言。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-31 04:59:15

您可以子类化FeedbackPanel,从而提供您自己的标记。只需复制FeedbackPanel.html并随心所欲地编辑标记(尽管组件层次结构必须保持不变)。

票数 4
EN

Stack Overflow用户

发布于 2012-10-31 05:28:19

最简单的查看方式是调用

代码语言:javascript
复制
feedbackPanel#setEscapeModelStrings(false)

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

代码语言:javascript
复制
'${input}' is not a valid email address.

这将返回'Joe‘不是有效的电子邮件地址。然而-攻击者可以很容易地注入一个XSS有效载荷,例如,通过传递<script>alert('xss')</script>,它不再被转义。

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

代码语言:javascript
复制
<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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13146841

复制
相关文章

相似问题

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