첫 두 기사에서는 DWR 제로 구성 문화 방법과 프론트 엔드 호출 백엔드 방법을 소개했습니다. 나는 모두가 능숙해야한다고 믿는다. 주로 백엔드가 프론트 엔드 JS 메소드를 반대로 호출하는 방법에 대해 논의 해 봅시다.
이전 두 기사에서 언급했듯이 두 서비스 구성 요소는 DWR에 등록되어 있으며, 하나는 원격이고 다른 하나는 페이지에서 사용하는 컨트롤러입니다. 이 리모컨은 페이지가로드 되 자마자 호출되므로 세션과 페이지 스크립트 세션이 바인딩 관계를 설정할 수 있으므로 나중에 ScriptSessionID를 사용할 수 있습니다.
다음은 세션 및 페이지 스크립트션을 작성하는 방법입니다 (페이지가로드 될 때 페이지가 호출됩니다).
ScriptSession ScriptSession = WebContextFactory.get (). getScriptTession (); String jsessionId = scriptsession.gethttpsessionid (); 문자열 dwrsessionId = scriptsession.getId (); logger.info (string.format ( "set jsessionid = [%s], dwrsession = [%s] 푸시 enabled", jsessionid, dwrsessionid)); constantCacheservice.putCacheConstant (constants.push_id+jsessionId, dwrsessionId);
다음은 반대로 프론트 엔드를 호출하는 데 사용되는 서비스 방법입니다.
@Service ( "dwrRreverseajaxService") public class dwrreverseajaxservice {private static final logger = loggerfactory.getLogger (dwrRreverseajaxService.class); public void directWebremotingwithsession (htttpessession, 최종 문자열) null! "); 최종 문자열 scriptSessionId = constantCacheservice.getCacheConstantValue (constants.push_id + session.getId ()); logger.info ("[dwr session id] = " + scriptsessionId +"[script function] = " + functionName); browsession (scriptsid, new runnable) {scriptsessions.addFunctionCall (functionName, "");}};}}이 서비스는 역 포지셔닝 및 푸시를 위해 ScriptSessionID를 사용 하며이 ScriptSessionID는 처음 페이지를로드했을 때 저장된 전역 맵 쌍을 사용합니다.
등록 된 서비스 Bean을 호출하려면 사용하십시오. 전달 된 매개 변수는 httpsession과 호출하려는 프론트 엔드 funciton 이름입니다. 동시에, JS 함수는 현재 페이지에 존재하며 메인 페이지의 JS의 메소드에 액세스 할 수 있습니다. 그렇지 않으면 프론트 엔드는이 메소드를 정의되지 않은 오류로 표시합니다.
위는 DWR의 간단한 적용입니다. 내가 처음 사용하는 것은 순전히 처음입니다. 잘못된 것이 있다면 저를 바로 잡으십시오. 감사합니다! 하나님, ~~~~~에 의해 떠 다니십시오.