发布于 2017-03-28 19:07:55
您可以在renderHead(IHeaderResponse response)中创建FeedbackPanel子类并调用javascript
如下所示:
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(OnDomReadyHeaderItem.forScript("callFancyJs();"));
}这将调用javascript,而不管是否使用AJAX。
另外,如果你需要在javascript中通过它的类型来访问FeedbackMessage,我已经添加了CSS类,我用它来设置bootstrap样式:
@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中的反馈消息。
发布于 2017-03-27 23:50:38
您必须通过在服务器端处理的AJAX请求来完成此操作,此处理程序必须调用该方法,然后将面板添加到AjaxRequestTarget以进行更新
发布于 2017-03-28 15:28:04
您可以从WicketStuff JGrowl集成中获得灵感:https://github.com/wicketstuff/core/tree/master/jquery-parent/jquery/src/main/java/org/wicketstuff/jquery/jgrowl
它的方式是为每条消息呈现一个<script>。此脚本包含类似于$.jgrowl({...})的文本。
https://stackoverflow.com/questions/43050908
复制相似问题