스트럿츠2 는 고유의 태그를 가지고 있습니다. EL 태그, JSTL 태그와 같이 스트럿츠2에서만 사용되는 태그인데요.
그 태그를 이용한 로그인 처리를 간단히 진행보도록 하겠습니다.
태그의 종류는 정말 다양한데, 모든 것을 다 외우기엔 벅찹니다. 따라서 가장 많이 사용되고 또 연습할 수 있는 태그를 중심으로 해보도록 하겠습니다. 로그인 처리를 진행할 때 사용되는 태그를 연습해봄으로써 전반적인 흐름을 가지시면 됩니다.
사용될 태그
<s:form />
<s:submit />
<s:textfield />
<s:password />
<s:property />
코딩을 해보면서 태그가 어떻게 사용되는지 바로 알아보겠습니다.
전체적인 프로젝트 흐름은 아래와 같습니다.
로그인 화면에서 아이디와 패스워드 입력 ===> 서버송신 ===> 서버에서 아이디와 패스워드 확인 ===>
일치한다면 로그인 성공 메시지 출력
추천은 블로거에게 큰 힘이됩니다(로그인 불필요) 보다 좋은 정보로 보답할게요^^
Login.jsp 로그인 폼 페이지
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- 스트럿츠2 태그 라이브러리를 사용하기 위한 설정 부분 시작 -->
<%@ taglib prefix="s" uri="/struts-tags" %>
<!-- 스트럿츠2 태그 라이브러리를 사용하기 위한 설정 부분 끝 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>[스트럿츠2 태그이용 로그인처리]</title>
</head>
<body>
<s:property value="username"/>
<s:property value="message"/>
<s:from action="Login2.action">
<s:textfield label="아이디" name="userid" value="%{userid}"/>
<s:password label="비밀번호" name="userpw" value="%{userpw}"/>
<s:submit value="로그인" /> // 로그인,취소 버튼은 아래 포스팅 된 결과페이지에는 나와있지않지만.
<s:reset value="취 소" /> // 이대로 실행하시면 그 실행화면에는 보이실겁니다^^
// 단 실행될 때 버튼이 위 아래 정렬되니까, 테이블로 만들어주시면
// 가로로 정렬 되실거예요~
</s:from>
</body>
</html>
Login.java 로그인 액션처리 페이지
package action;
import com.opensymphony.xwork2.ActionSupport;
public class Login extends ActionSupport{
//상수: 실제로 DB가 사용되는 것이 아니기 떄문에 임의로 설정해주었습니다.
private static final String my_userid="Lee";
private static final String my_userpw="1234";
private static final String my_username="이순신";
private String userid;
private String userpw;
private String username="";
private String message="로그인하세요";
public String getUserid() { return userid; }
public void setUserid(String userid) { this.userid = userid; }
public String getUserpw() { return userpw; }
public void setUserpw(String userpw) { this.userpw = userpw; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
// 입력받은 값이 널인지 아닌지 판단
public boolean isInvalid(String value){
boolean flag = false ;
if(value==null || value.length()==0) { flag = false; }
return flag;
// 위의 3 줄을 이렇게 === > return( value==null || value.length()==0 ); } 한 줄로 표현가능합니다.
@Override public String execute() throws Exception {
System.out.println("Login.java execute() 실행완료"); // 굳이 필요없지만, 동작흐름 확인
if( this.isInvalid(this.getUserid()) ) return INPUT;
if( isInvalid(getUserpw()) ) return INPUT;
if( userid.equals(my_userid) && userpw.equals(my_userpw)){
username = my_username; message = "님 환영합니다.";
return SUCCESS;
} else{
message = "아이디 혹은 비밀번호가 잘못되었습니다.";
return INPUT; // INPUT 리턴값은 입력하는 화면으로 돌아가라는 의미.
}
}//end
}//class END
struts.xml JSP페이지 맵핑
<?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="Web0724" extends="struts-default">
<action name="login" class="action.Login">
<result>/jsp/Login{1}</result>
<result name="input">/jsp/Login{1}.jsp</result> // 실패했을 시 이동하는 겁니다.
// 성공했을 땐 자동으로 "success"
</action>
</package>
</struts>
실행결과는 아래와 같습니다^^
차근히 해보시고 궁금하신 내용은 댓글 달아주세요~
위와 같이 상수로 설정해놓은 로그인 정보를
입력하고 Submit 클릭해주시면,
아래와 같이 페이지로 넘어간다면,
퍼펙트 합니다~!!
'IT > Struts2' 카테고리의 다른 글
스트럿츠2 태그 <s:sort /> (0) | 2013.07.30 |
---|---|
OGNL ( Object Graph Navigation Language ) (0) | 2013.07.29 |
chain result (체인리절트) 활용하기 - 2편 (0) | 2013.07.25 |
chain result (체인리절트) 활용하기 - 1편 (0) | 2013.07.25 |
스트럿츠2 한글 에러 발생 처리 (0) | 2013.07.25 |