首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wicket下载链接清除反馈面板

wicket下载链接清除反馈面板
EN

Stack Overflow用户
提问于 2013-06-14 23:55:35
回答 3查看 3.6K关注 0票数 2

我有几个下拉菜单和一个下载链接按钮。根据用户选择,我获得要下载的文件。如果用户没有做出选择,我会在反馈面板上显示一个错误。如果用户选择并单击下载链接,则可以正常工作,但之前的反馈消息仍然可见。我如何清除它。

单击下载链接,我尝试了以下方法,但没有用

代码语言:javascript
复制
FeedbackMessages me = Session.get().getFeedbackMessages(); 
me.clear();
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-15 05:38:19

很可能是这样

代码语言:javascript
复制
Session.get().cleanupFeedbackMessages()

甚至在Wicket 6.x中也进行了更改

票数 4
EN

Stack Overflow用户

发布于 2014-08-01 21:47:03

我找到了这篇文章,我认为是时候分享Wicket 6.x和Wicket 7.x的方式了,因为Session.get().cleanupFeedbackMessages()已经被弃用了。

要在Wicket 6.x上执行此操作,您必须为反馈面板实现额外的过滤器。在哪里做,这是你的决定。

通过扩展现有的FeedBackPanel类来创建新的FeedbackPanel实现

代码语言:javascript
复制
private class MessagesFeedbackPanel extends FeedbackPanel{

  private MessageFilter filter = new MessageFilter();

  public MessagesFeedbackPanel(String id){
    super(id);
    setFilter(filter);
  }


  @Override
  protected void onBeforeRender(){
    super.onBeforeRender();
    // clear old messages
    filter.clearMessages();
  }
}

通过实现现有的IFeedbackMessageFilter接口,提供一个新的过滤器实现

代码语言:javascript
复制
public class MessageFilter implements IFeedbackMessageFilter{

  List<FeedbackMessage> messages = new ArrayList<FeedbackMessage>();

  public void clearMessages(){
    messages.clear();
  }

  @Override
  public boolean accept(FeedbackMessage currentMessage){
    for(FeedbackMessage message: messages){
      if(message.getMessage().toString().equals(currentMessage.getMessage().toString()))
        return false;
    }
    messages.add(currentMessage);
    return true;
 }
}
票数 2
EN

Stack Overflow用户

发布于 2018-08-02 15:34:17

以下代码适用于我在Wicket 6中的工作:

代码语言:javascript
复制
public class MyComponent extends Panel {

    ...
    FeedbackMessages feedback = getFeedbackMessages();
    feedback.clear();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17112583

复制
相关文章

相似问题

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