donaricano-btn

Action(4) - Access to servlet data(서블릿 데이터 엑세스)


- 액션을 만드는 중 HttpServletRequest, HttpSession같은 서블릿에 접근해야함

- 스트럿츠는 두 가지 방법을 제공


1. ServletActionContext 클래스의 static메소드


- HttpSession을 얻을 메소드는 준비 되어있지않다.

- getRequest메소드로 얻은 오브젝트에서 얻을수 있다


2. Aware인터페이스 

 인터페이스 이름

용도 

ServletRequestAware 

HttpServletRequest 오브젝트 취득

ServletResponseAware 

HttpServletResponse 오브젝트 취득 

ServletContextAware 

ServletContext 오브젝트 취득 

SessionAware 

HttpSession안의 값이 저장된 Map 오브젝트 취득 

- 각 인터페이스는 취득할 오브젝트의 Setter 메소드를 정의하고 있다

1) Action.java

'Back-End > Struts2' 카테고리의 다른 글

[Struts2] Context Map  (0) 2016.10.03
[Struts2] Result - 이동할 뷰 설정  (0) 2016.09.26
[Struts2] Action(3) - Binding  (0) 2016.09.26
[Struts2] Action(2) - Action Class  (0) 2016.09.25
[Struts2] Action(1) - Struts package, NameSpace  (0) 2016.09.25
블로그 이미지

리딩리드

,
donaricano-btn

 Action(3) - Binding

- 브라우저에서 입력된 값을 바인딩

- 입력값을 액션 프로퍼티로 정의한다


1. 프로퍼티로 정의

1) HTML


- name 속성으로 전송한다

2) Action.java

 

- JavaBeans의 프로퍼티로 값을 선언한다


2. JavaBeans의 바인딩

- 문자열 뿐 아니라 JavaBeans도 바인딩이 가능하다

1) HTML

 

2) Action.java

 

- User 클래스에는 인수가 없는 생성자가 필요


블로그 이미지

리딩리드

,
donaricano-btn

Action(2) - Action Class

- POJO로 처리 가능

- 빈번하게 사용하는 처리나 값을 제공하는 ActionSupport클래스를 상속해서 작성하는것도 좋다


1. ActionSupport 클래스 상속


- Result의 이름으로 ActionSupportstatic 필드 SUCCESS사용함

- 반환은 "success"이며 ERROR, LOGIN등의 상수가 있다

2. struts.xml

 

- class 속성을 생략하면 액션처리가 이루어 지지 않고 바로 name이 "sucess"인 URL로 이동

3. 복수의 액션 메소드

1) Multi.java

 

2) struts.xml

 

4. 와일드카드

- 실행할 메소드동적으로 변경가능

 

- Action클래스 안의 와일드카드 * 부분의 문자열이 메소드 속성{1}로 치환

- multi_foo요청

- sample.MultiAction의 foo()가 실행된다

- 와일드 카드가 여러개 있을시 출현 순서에 맞게 {1}의 숫자를 증가시킴

블로그 이미지

리딩리드

,
donaricano-btn

Action(1) - Struts package, NameSpace


1. Action

- 요청의 종류별로 개별처리하는 부분

- Action클래스 작성후 struts.xml에 등록 해야함


2. 패키지 설정

- 액션을 그룹으로 묶을수 있다


1) package

- name속성에 패키지 이름을 기술, 액션자식 요소를 기술함

2) namespace

- URL의 계층을 설정

- 예제는 루트 도메인, 임의 값을 설정가능하다

a. 예제   

- 도메인 : foo.com

- 서블릿 루트 컨텍스트 :sample

- namespace : /dialog/greeting

- 액션 : hello

- url : http://foo.com/sample/dialog/greeting/hello

3) extends

- 기본 스트럿츠 패키지인 struts-default의 각종 설정을 상속

블로그 이미지

리딩리드

,