12.07.2015 Views

4.3.1.Action의 역할 - Anyframe

4.3.1.Action의 역할 - Anyframe

4.3.1.Action의 역할 - Anyframe

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Preventing Double Form Submission// TODO: submit 할 때 수행할 로직을 넣을 것System.out.println("status: performed");} else {// TODO: init / reload 할 때 수행할 로직을 넣을 것System.out.println("status: initialized or reloaded");}saveToken(request);• JSPUI(JSP, HTML)에서는 "org.apache.struts.taglib.html.TOKEN"을 Key로 하는 Hidden Field를 통해 할당된 Token 값을 서버로 전송하고, 해당 Action 클래스에서는 isTokenValid 메소드 호출을 통해 이 Token값과 Session에 저장된 Token 값을 비교함으로써, Token의 유효성을 검사한다.11.3.선언적인 Token 처리중복 Form Submit 방지 처리가 필요한 모든 Action과 JSP에 Token 처리를 위한 로직이 중복 구현되지 않도록 하기 위해, <strong>Anyframe</strong> 에서는 AbstractActionSupport 클래스와 DefaultActionMapping 클래스를 이용하여 선언적으로 Sychronized Token을 처리할 수 있는 기능을 제공한다. 선언적인 Synchronized Token처리를 위해서는 Struts 속성 정의 파일 내에 Action 매핑시 다음과 같은 속성을 추가 정의해 주어야 한다.• saveToken : 해당 Action 수행 후, Client에서 전달한 Token을 Session에 저장할지에 대한 설정• validateToken : 해당 Action 수행 전, Token의 유효성을 체크할지에 대한 설정• resetToken : Token의 유효성을 체크한 후에 Session에 저장된 Token을 reset할지에 대한 설정아래는 struts-config-token.xml 파일의 일부로, 선언적인 기법으로 중복 Form Submit을 방지하는 예제이다.각 Action 매핑시 정의한 위의 세가지 속성이 AbstractActionSupport 클래스를 통해 어떻게 처리되는지에 대해서는 다음 예를 통해 상세히 살펴보자.11.3.1.Samples1. 1.중복 Form Submit 방지가 필요한 UI의 경우, 해당 UI를 로드시키기 위한 Action 실행을 통해 Token을 Session에 저장해야 한다. 따라서 해당 Action 매핑 정의시 saveToken 속성값을 true로 정의해주도록 한다.53

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!