51.Struts22009. 2. 23. 15:26
반응형
새로운 신입이라서 경력 선배분들이 하는 것을 보고 있으면 참 신기하고 재미있게 보이는게 많다..
어깨 넘어로 보고 있자니 이런거 저런거 배우라고 하는것도 많고...배울것도 많고...
배우고 싶은것도 많... 아니 이건 쫌 그렇고... -_-;;

어재 처음으로  NetBeans로 struts2 Framework 이라는 것을 봤는데..(NetBeans도 처음이고..아는게 없네 ㅜㅜ)
참... 전자동이군... 하는 생각이 ..
몇달전에  Struts 라는 것을 처음 볼때 느낀 프레임웍이라는게 참 좋은거구나.. 하는 거였다..
설정만 살짝살짝 해주면 일은 알아서 다 한다. (굿인데...)
근데 요 Struts2 라는 놈은 더 자동이다 ㅡㅡ

아직은 잘 모르겠지만 Struts1.x 와  Struts2.x 는 상당히 다르다고 하는데..
공부할게 점점 많아지는거 같다..
사용방법을 알아보고자 간단하게 펙토리얼을 구해 보았다



아무튼 각설하고,

view 단에서 발생한 Request가 최종적으로 Response되어  view 단에 출력되어지는 동작순서를 알아보자..

1. Servlet Container(톰켓)는 Browser로 부터 Request를 받아 들인다.
    이 Request에는 해당 작업을 수행하기 위한 r_factorial.action( .do와 같은 역할)이 포함되어 있다.


2. web.xml 에서 url을 통해 들어온 모든 request 는 Mapping에 의해 struts2 로 전달되도록
    설정되어 있다. 따라서 org.apache.struts2.dispatcher.FilterDispatcher 로 보내지게 된다.


3. .action이 있기에  Struts2 Framework에서는 Struts2 Framework 에서 Request 를 처리하도록 한다.


4. Sturts2 는 struts.xml 에서 요청한 r_factorial.action 과 같은 이름의 파일r_factorial이 있는지 찾는다.
    같은 이름이 존재하면 struts.xml 에서 지정한 클래스의 객체의 execute() 메소드를 실행한다.

    - 이름이 반드시 struts.xml이어야 하는것은 아니다. struts.xml에 동일한 위치에 있는 xml 파일을
       include시켜 주어도 된다(사용자별 or 기능별 action 관리를 위해 xml 파일을 나누어 관리할 수 있다)

    - xml 파일에서 이름을 찾을때 r_factorial.action과 동일한 이름 찾지만 뒤에 .action은 빼고 찾는다 ;;

- struts.xml 파일에 example.xml 파일을 include 시켜 사용할 수 있다.


5. r_Factorial.execute() 메소드가 실행되고, 이에 필요한 비즈니스 로직이 실행된다.
    return 하는 값이 SUCCESS 이면 정상적인 정상으로 판단하고,
    struts.xml(example.xml) 에서 지정한 Result 에 기술된 example/r_factorial.jsp 로 Forwarding 된다.

- ActionSupport 상속을 위해 com.opensymphony.xwork2.ActionSupport 를 import 필요
- ActionSupport 를 상속 받지 않으면 상수인 SUCCESS , 요놈이 먹히지가 않는다 -_-;;

6. Factorial.jsp에서는 <s:property value="str" />, <s:property value="result" />태그를 인식하여
    r_Factorial.factorial() 메소드를 호출하여, HTML 을 구성한다.


7. 마지막으로 HTML 코드를 Browser 로 response 한다.   

일단 내가 아는건 여기까지다.. 완전 기본 뿐이지만..

점점 더 공부해서 초중급.... 내용을 올려보련다  ^_^;;;
Posted by 1010