Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- HTML
- AWT
- 오버로딩
- 메서드
- mybatis
- 전화걸기
- paint
- 기본
- 안드로이드
- struts2
- Java
- oracle
- Android
- Spring
- 배열
- 메소드
- 생성자
- layout
- 국제화
- 에러페이지
- 예외처리
- JSP
- JavaScript
- 이클립스
- OGNL
- Menu
- 어노테이션
- Graphic
- Eclips
- 클래스
Archives
- Today
- Total
note
struts2 도메인 오브젝트 본문
이전 게시물과 연관
[JSP/스트럿츠2] - struts2 ActionSupport를 이용한 JSP 호출 (form만 요청할페이지에 사용)
[JSP/스트럿츠2] - struts2 default-action-ref (에러페이지)
[JSP/스트럿츠2] - Struts2 와일드카드 디폴트
[JSP/스트럿츠2] - Struts2 include 사용
[JSP/스트럿츠2] - Struts2 유효성 검사
[JSP/스트럿츠2] - Struts2 ActionSupport를 사용하여 유효성 검사
struts-ch4.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="ch4-4" namespace="/ch4" extends="struts-default">
<!-- 데이터 전송 -->
<action name="helloWorld3" class="com.ch4.action.HelloWorld3">
<interceptor-ref name="params" />
<result name="success">hello.jsp</result>
</action>
<!-- Action 인터페이스 사용 및 유효성 검사 -->
<action name="helloWorld4" class="com.ch4.action.HelloWorld4">
<interceptor-ref name="params" />
<result name="input">name4.jsp</result>
<result name="success">hello.jsp</result>
</action>
<!-- ActionSupport 사용 및 유효성 검사 -->
<action name="helloWorld5" class="com.ch4.action.HelloWorld5">
<interceptor-ref name="params" />
<interceptor-ref name="workflow" />
<result name="input">name5.jsp</result>
<result name="success">hello.jsp</result>
</action>
<!-- 도메인 오브젝트 사용1 -->
<action name="createUser" class="com.ch4.action.CreateUser">
<interceptor-ref name="params" />
<result name="success">createSuccess.jsp</result>
</action>
</package>
</struts>
userForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>도메인 오브젝트 테스트</title>
</head>
<body>
<form action="createUser.action" method="post">
이름 : <input type="text" name="name"><br/>
나이 : <input type="text" name="age"><br/>
이메일 : <input type="text" name="email"><br/>
<input type="submit" value="전송">
</form>
</body>
</html>
createSuccess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>도메인 오브젝트 테스트</title>
</head>
<body>
사용자를 추가했습니다.<br/>
${user}
</body>
</html>
CreateUser
package com.ch4.action;
import com.ch4.dao.UserDao;
import com.ch4.domain.User;
import com.opensymphony.xwork2.Action;
public class CreateUser implements Action{
//멤버변수
private String name;
private String age;
private String email;
@Override
public String execute() throws Exception {
//User 오브젝트 생성
User user = new User();
user.setName(name);
user.setAge(age);
user.setEmail(email);
//Dao 생성
UserDao userDao = new UserDao();
userDao.createUser(user);
return SUCCESS;
}
//setter
public void setName(String name) {
this.name = name;
}
public void setAge(String age) {
this.age = age;
}
public void setEmail(String email) {
this.email = email;
}
}
interceptor가 낚아 챈다
CreateUser의 setter를 실행시켜서
execute() 에 User 오브젝트를 생성한다
위에 방식은 java의 방식
이번 방식은 Struts2 만의 방식
이번 방식은 Struts2 만의 방식
struts-ch4.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="ch4-4" namespace="/ch4" extends="struts-default">
<!-- 데이터 전송 -->
<action name="helloWorld3" class="com.ch4.action.HelloWorld3">
<interceptor-ref name="params" />
<result name="success">hello.jsp</result>
</action>
<!-- Action 인터페이스 사용 및 유효성 검사 -->
<action name="helloWorld4" class="com.ch4.action.HelloWorld4">
<interceptor-ref name="params" />
<result name="input">name4.jsp</result>
<result name="success">hello.jsp</result>
</action>
<!-- ActionSupport 사용 및 유효성 검사 -->
<action name="helloWorld5" class="com.ch4.action.HelloWorld5">
<interceptor-ref name="params" />
<interceptor-ref name="workflow" />
<result name="input">name5.jsp</result>
<result name="success">hello.jsp</result>
</action>
<!-- 도메인 오브젝트 사용1 -->
<action name="createUser" class="com.ch4.action.CreateUser">
<interceptor-ref name="params" />
<result name="success">createSuccess.jsp</result>
</action>
<!-- 도메인 오브젝트 사용2 -->
<action name="createUser2" class="com.ch4.action.CreateUser2">
<interceptor-ref name="params" />
<result name="success">createSuccess.jsp</result>
</action>
</package>
</struts>
userForm2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>도메인 오브젝트 테스트</title>
</head>
<body>
<form action="createUser2.action" method="post">
이름 : <input type="text" name="user.name"><br/>
나이 : <input type="text" name="user.age"><br/>
이메일 : <input type="text" name="user.email"><br/>
<input type="submit" value="전송">
</form>
</body>
</html>
스트럿츠2의 방법
user.name
user.age
user.email
라고 쓰면 user를 자바빈으로 인식
코딩이 줄어들면서
위에와 동일한 일을 한다
하지만 이 방식은 권장 방식이 아니다
-> 자바빈의 명칭이 바뀔 경우 다 뜯어 고쳐야된다(의존성이 높은 코드)
이러한 방식이 있다는것만 알아두자
권장 방식
struts-ch4.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="ch4-4" namespace="/ch4" extends="struts-default">
<!-- 데이터 전송 -->
<action name="helloWorld3" class="com.ch4.action.HelloWorld3">
<interceptor-ref name="params" />
<result name="success">hello.jsp</result>
</action>
<!-- Action 인터페이스 사용 및 유효성 검사 -->
<action name="helloWorld4" class="com.ch4.action.HelloWorld4">
<interceptor-ref name="params" />
<result name="input">name4.jsp</result>
<result name="success">hello.jsp</result>
</action>
<!-- ActionSupport 사용 및 유효성 검사 -->
<action name="helloWorld5" class="com.ch4.action.HelloWorld5">
<interceptor-ref name="params" />
<interceptor-ref name="workflow" />
<result name="input">name5.jsp</result>
<result name="success">hello.jsp</result>
</action>
<!-- 도메인 오브젝트 사용1 -->
<action name="createUser" class="com.ch4.action.CreateUser">
<interceptor-ref name="params" />
<result name="success">createSuccess.jsp</result>
</action>
<!-- 도메인 오브젝트 사용2 -->
<action name="createUser2" class="com.ch4.action.CreateUser2">
<interceptor-ref name="params" />
<result name="success">createSuccess.jsp</result>
</action>
<!-- 도메인 오브젝트 사용3 -->
<!-- interceptor 순서를 반드시 지킬것 -->
<action name="createUser3" class="com.ch4.action.CreateUser3">
<interceptor-ref name="prepare" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="params" />
<result name="success">createSuccess.jsp</result>
</action>
</package>
</struts>
CreateUser3.java
package com.ch4.action;
import com.ch4.dao.UserDao;
import com.ch4.domain.User;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
public class CreateUser3 implements Action,Preparable,ModelDriven{
private User user;
@Override
public String execute() throws Exception {
UserDao userDao = new UserDao();
userDao.createUser(user);
return SUCCESS;
}
//생성된 자바빈 객체에 params 인터셉터가 데이터를 저장할 수 있도록
//value stack 상단에 자바빈 객체를 올려주는 역할 수행
@Override
public Object getModel() {
return user;
}
//자바빈 객체 생성
@Override
public void prepare() throws Exception {
user = new User();
}
}
userForm3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>도메인 오브젝트 테스트</title>
</head>
<body>
<form action="createUser3.action" method="post">
이름 : <input type="text" name="name"><br/>
나이 : <input type="text" name="age"><br/>
이메일 : <input type="text" name="email"><br/>
<input type="submit" value="전송">
</form>
</body>
</html>
interceptor가 2개가 늘어남
prepare -> CreateUser3.java prepare()를 동작 시킴
modelDriven -> getModel()를 동작시킴
params -> 셋팅
xml에 명시할경우
위에 있는 순서를 지켜야된다
이 게시물 공통 사용 코드는
createSuccess.jsp
User.java
'JSP > Struts2' 카테고리의 다른 글
| struts2 커스텀 인터페이스 (0) | 2012.02.22 |
|---|---|
| struts2 커스텀 인터셉터 (0) | 2012.02.21 |
| Struts2 ActionSupport를 사용하여 유효성 검사(Interceptor) (1) | 2012.02.21 |
| Struts2 유효성 검사 (0) | 2012.02.21 |
| Struts2 include 사용 (0) | 2012.02.21 |