我的实现设计模式存在这样的问题。我有一些在我的项目中保持警惕的类,是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中我还创建了一个观察者对象。 请帮忙。
答案 0 :(得分:0)
如何尝试ServletRequestAttributeListener,您将能够监视请求属性中的更改。
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequestAttributeListener.html