采集真正处理基站返回成功控制码后,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");}?