JSP中的Observer实现

时间:2015-02-20 13:01:04

标签: java jquery jsp observer-pattern

我的实现设计模式存在这样的问题。我有一些在我的项目中保持警惕的类,是observerManager以及jsp页面中的一些观察者。观察者将等待来自observerManager的通知(当用户添加一些信息或更改某些内容时,在observerManager中运行notifyChanged)。这些课程现在已经实施了。 我的最大问题是如何使用它们。

 public class ObserverManagerImp implements ObserverManager{
        private LinkedList<Observer> observers; 

    private User user;
    private ActionDone action;

    public ObserverManagerImp() {
        observers = new LinkedList<Observer>();
    }

    @Override
    public void registerObserver(Observer observer) {
        observers.add(observer);
    }

    @Override
    public void unregisterObserver(Observer observer) {
        observers.remove(observer);
    }

    @Override
    public void notifyObservers() {
        for(Observer observer : observers)
            observer.update(user,action);

    }

    public void dataChanged(User user, ActionDone action){
        this.user= user; 
        this.action = action;
        notifyObservers();
    }
}

界面观察者。在这个地方(在更新方法中)我想运行jquery函数来显示来自jsp的内容。

   public interface Observer {
        public void update(User user, ActionDone action);
    }

在JSP文件中是用html编写的一些框,我想在observerManager通知时弹出它。

<div id="message_content">
<div class="title" >Notification</div>
<div class="close" ><img id="close_button" src="images/close.png" id="close_button" width="25" height="25"/></div>
<div class="clear"></div>
<div class="message">User: name surname, added new comment</div>
<div class="clear"></div>
<button id="close_button" class="close_button" >Refresh Panel</button>
</div>

jsp中的javascript函数:

function showUp(userName, userSurname, actionCode){
        $("#message_content.message").empty().append("User: " + userName + " " + userSurname + "was " + actionCode);
        $("#message_content").show();
    }

在这个jsp中我还创建了一个观察者对象。 请帮忙。

1 个答案:

答案 0 :(得分:0)

如何尝试ServletRequestAttributeListener,您将能够监视请求属性中的更改。

http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequestAttributeListener.html