■ 회원 정보를 저장하기 위한 도메인 오브젝트
-. 데이터 베이스에 정보를 저장하는 계층을 퍼시스턴스 계층(Persis-tence Layer)이라고 한다.
※ 퍼시스턴스 계층 역시 모델 영역에 포함된다.
-. 퍼시스턴스 계층은 별도의 도메인 오브젝트를 설계하되, DAO(Data Access Object) 패턴으로 구현하는것이 바람직 하다.
User.java |
package model; |
UserDao.java |
package dao; import model.User; // 데이터베이스 테이블 정보를 저장하는 모델 영역의 퍼시스턴스 계층(Persistence Layer)에 포함되는 // 도메인 오브젝트를 UserDao란 이름으로 정의한다. public class UserDao { // create() 메소드에는 실질적으로 데이터베이스에 정보를 저장하는 퀴리문을 수행하는 비즈니스 로직이 기술되어야 한다. public void create(User user) { System.out.println("사용자를 추가했습니다."); System.out.println("추가된 사용자의 정보"); System.out.println(user); } } |
UserRegAction2.java |
package action; import com.opensymphony.xwork2.Action; import model.User; import dao.UserDao; public class UserRegAction2 implements Action { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { UserDao uerDao = new UserDao(); uerDao.create(user); return SUCCESS; } } |
userRegForm2.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>회원 가입</title> </head> <body> <center> <h2>회원가입</h2><p/> <form method = "post" action = "UserRegAction2.action"> <table cellspacing = "10"> <tr> <td>아이디</td> <%-- <input> 태그의 name 속성 값을 user.userId로 지정하면 params 인터셉터가 액션의 getUser().setUserId()를 호출한다. --%> <%-- 액션의 도메인 오브젝트(User)가 인스턴스화 되었으면 바로 getUser().setUserId()를 호출하지만, --%> <%-- 인스턴스가 없으면 인스턴스를 생성하고 생성한 인스턴스를 setUser() 메서드를 통해서 액션에 세팅한다. --%> <%-- 그런 후에 getUser().setUserId()메소드를 호출하여 텍스트 상자에 입력한 값을 도메인 오브젝트에 세팅한다. --%> <td><input type = "text" name = "user.userId"></td> </tr> <tr> <td>비밀번호</td> <td><input type = "password" name = "user.userPw"></td> </tr> <tr> <td>이름</td> <td><input type = "text" name = "user.userName"></td> </tr> <tr> <td colspan = "2"><input type = "submit" value = "보내기"></td> </tr> </table> </form> </center> </body> </html> |
userRegSuccess2.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
struts.xml |
<?xml version="1.0" encoding="UTF-8"?> |
출력화면 |
'Struts > Struts Programming' 카테고리의 다른 글
[Struts] 스트럿츠 2 아키텍처 (0) | 2012.09.06 |
---|---|
[Struts] ModelDriven와 Preparable 인터페이스 활용하기 (0) | 2012.09.03 |
[Struts] ActionSupport 클래스를 확장한 액션 (1) | 2012.09.03 |
[Struts] 스트럿츠 흐름과 파라미터 값 전달하기 (2) | 2012.09.03 |
[Struts] Action 인터페이스를 구현한 액션 (0) | 2012.09.03 |