Project2021

[Gaia] project 흐름도.

뱅타 2021. 6. 14. 22:28

NOTE

ViewLoadController.java
  • MemberViewLoadController.java
  • IssueViewLoadController.java
  • MileStoneViewLoadController.java
...

Button

페이지에서 버튼 클릭
  • ajax 호출
  • URL : view/... (view/member/... || view/issue/...)
  • dataType : Html

→ ViewLoadController.java
  • return view (member.jsp || issue.jsp)

→ {view}.jsp (return 받은 {view} 페이지)
  • .ajax 호출
  • URL : .../restapi/... (/restapi/project/issues)
  • dataType : json

→ MemberREST.java
  • return map<String, Object>


URL

주소창에 직접 입력
  • Controller로 이동.

→ URLMapper.java
  • return "view/template/project"
  • tiles.xml

→ member.js
  • memberMovePageHistory()

history.pushState(data, null, url);

  • memberMovePage()
  • .ajax 호출
  • URL : "/view/member/";
  • return html

여기서부터 Button 과정 다시 반복.


→ ViewLoadController.java
  • return view (member.jsp || issue.jsp)

→ {view}.jsp (return 받은 {view} 페이지)
  • .ajax 호출
  • URL : .../restapi/... (/restapi/project/issues)
  • dataType : json

→ MemberREST.java
  • return map<String, Object>

Summary

비동기로 모든 페이지 처리
  • 버튼 클릭 시 타는 Controller와 직접 주소창 기입 시 타는 Controller가 다르다.
  • $(window).bind("popstate", function(event)로 뒤로가기도 따로 주어야 한다.

why?

  • 비동기
  • 상단의 주소창이 변하지 않음.
  • 그래서 주소를 임의로 변경시키고 그 주소를 브라우저 뒤로가기에 저장.

728x90
반응형