-->

스프링

 

class Authenticate

package com.java.dto;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class Authenticate {
	@NotNull @Min(4) @Max(12)
	private String userId; 
	
	@NotNull @Size(min=4, max=12)
	private String password;

	public Authenticate() {

	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	
	@Override
	public String toString() {
		return "Authenticate [userId=" + userId + ", password=" + password + "]";
	}
	
	
}

 

class UserController

 

package com.java.web;


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.java.dao.users.UserDao;
import com.java.dto.Authenticate;
import com.java.dto.User;
import javax.validation.constraints.*;

import java.util.List;

import javax.validation.Valid;


@Controller
@RequestMapping("/users")
public class UserController {
	
	private static final Logger logger=LoggerFactory.getLogger(UserController.class);
	
	@Autowired
	private UserDao userDao;
	
	@RequestMapping("/form")
	public String form(Model model){
		logger.debug("User : {} " , "test");
		model.addAttribute("user" , new User());
		return "users/form";
	}
	
	@RequestMapping(value="", method=RequestMethod.POST)
	public String create(@Valid User user, BindingResult bindingResult ){
		logger.debug("User : {} " , user);
		if(bindingResult.hasErrors()){
			logger.debug("Binding Result has error!");
			List<ObjectError> errors=bindingResult.getAllErrors();
			for(ObjectError error : errors){
				logger.debug("error : {}, {}", error.getCode(), error.getDefaultMessage());
			}	
			return "users/form";
		}
		userDao.create(user);
		logger.debug("Database : {} " , userDao.findById(user.getUserId()));
		return "redirect:/";
	}
	
	
	
	@RequestMapping("/login/form")
	public String loginForm(@Valid Authenticate authenticate , BindingResult bindingResult){
		if(bindingResult.hasErrors()){
			return "users/login";
		}
		
		User user=userDao.findById(authenticate.getUserId());
		if(user==null){
			//에러 처리 -존재하지 않는 사용자 입니다.
		}
		
		if(!user.getPassword().equals(authenticate.getPassword())){
			// 에러 처리 - 비밀번호가 틀립니다.
		}
			
		// 세션에 사용자 정보 저장
		
		logger.debug("loginForm  {}" , authenticate.toString());
		return "users/login";
	}
	
		
	
}





 

 login.jsp 

 

        <div class="panel panel-default content-main">
            <c:if test="${loginFailed}">
            <div class="alert alert-danger" role="alert">아이디 또는 비밀번호가 틀립니다. 다시 로그인 해주세요.</div>
            </c:if>
            
            <form:form modelAttribute="authenticate" name="question" method="post" action="/users/login/form">
                <div class="form-group">
                    <label for="userId">사용자 아이디</label>
                    <form:input class="form-control" id="userId" name="userId" path="userId" />
                    <form:errors path="userId"  cssClass="error"/>
                </div>
                <div class="form-group">
                    <label for="password">비밀번호</label>
                    <form:password class="form-control" id="password" name="password" path="password"/>
                    <form:errors path="password"  cssClass="error"/>
                </div>
                <button type="submit" class="btn btn-success clearfix pull-right">로그인</button>
                <div class="clearfix" />
            </form:form>
            
            
        </div>

 

 

 

 

 

 

 

spring

 

about author

PHRASE

Level 1  머나먼나라

댓글 ( 4)

댓글 남기기

작성