如何在 Wicket FeedbackPanel 的 info() / error() 方法上调用 Javascript



如何从 Wicket 反馈面板方法(如 info()error()(调用 JavaScript 方法。

我想做的是,显示 MDL 的小吃吧 Wicket FeddbackPanelerror()/info() 方法。但是要显示小吃栏,我们必须调用 JavaScript 方法。我不知道该怎么做,尤其是在非 ajax 调用中。

你可以对FeedbackPanel进行子类化,并在renderHead(IHeaderResponse response)中调用javascript

喜欢这个:

   @Override
   public void renderHead(IHeaderResponse response) {
      super.renderHead(response);
      response.render(OnDomReadyHeaderItem.forScript("callFancyJs();"));
   }

这将调用javascript,而不管是否是AJAX。

此外,如果您需要通过 javascript 中的类型访问FeedbackMessage,我已经添加了它们 CSS 类,我将其用于引导样式:

   @Override
   protected Component newMessageDisplayComponent(String id, FeedbackMessage message) {
      Component c = super.newMessageDisplayComponent(id, message);
      c.setEscapeModelStrings(false);
      String bootstrapClass = "text-info";
      switch (message.getLevel()) {
         case FeedbackMessage.ERROR:
            bootstrapClass = "text-danger";
            break;
         case FeedbackMessage.WARNING:
            bootstrapClass = "text-warning";
            break;
         case FeedbackMessage.SUCCESS:
            bootstrapClass = "text-success";
            break;
         case FeedbackMessage.FATAL:
            bootstrapClass = "text-danger";
            break;
         case FeedbackMessage.DEBUG:
            bootstrapClass = "text-danger";
            break;
         case FeedbackMessage.INFO:
            bootstrapClass = "text-info";
            break;
      }
      c.add(new AttributeAppender("class", bootstrapClass));
      return c;
   }

您可以使用此类来定位 javascript 中的反馈消息。

您必须通过服务器端处理的 AJAX 请求执行此操作,并且此处理程序必须调用该方法,然后,将面板添加到AjaxRequestTarget以进行更新

您可以从 WicketStuff JGrowl 集成中获取灵感: https://github.com/wicketstuff/core/tree/master/jquery-parent/jquery/src/main/java/org/wicketstuff/jquery/jgrowl

它为每条消息呈现<script>的方式。此脚本具有类似于 $.jgrowl({...}) 的文本。

最新更新