采集真正处理基站返回成功控制码后,Action才返回成功。
Action:
?
((AreaControlCodeFilter)SpringContextTool.getBean("areaControlFilter")).registerObserver(this);
private boolean opSuccess = false;@Overridepublic void update(Subject s, Object arg) {((AreaControlCodeFilter)SpringContextTool.getBean("areaControlFilter")).removeObserver(this);((CDMAControlCodeFilter)SpringContextTool.getBean("CDMAControlFilter")).removeObserver(this);if((Integer) arg!=8)opSuccess = true;}
//如果没有返回,等待1swhile(!opSuccess){Thread.sleep(1000*1);}if (flag)return "true";return ERROR;
?
?
AreaControlCodeFilter.java:
?
private ArrayList<ControlCodeObserver> observers = new ArrayList<ControlCodeObserver>(); @Overridepublic void registerObserver(ControlCodeObserver o) { observers.add(o); }@Overridepublic void removeObserver(ControlCodeObserver o) {int i = observers.indexOf(o); if (i >= 0) { observers.remove(i); } }@Overridepublic void notifyObservers(Object arg) {for (int i = 0; i < observers.size(); i++) { ControlCodeObserver observer = (ControlCodeObserver) observers.get(i); observer.update(this,arg); } }
?
Subject:
?
public interface Subject { public void registerObserver(ControlCodeObserver o); public void removeObserver(ControlCodeObserver o); public void notifyObservers(Object arg); }
?
ControlCodeObserver :
?
public interface ControlCodeObserver { public void update(Subject s , Object arg); }
?JS:
if (msg == "true") {showMessage("#optionSuccess");setTimeout(function(){window.location.reload();},1000*2);//刷新页面} else {showMessage("#optionFailure");}?