728x90

로그인 유무에 따라 상단탭 다르게 설정하기

 

ServletAppContext

    @Autowired
    private TopMenuService topMenuService; //@service

    @Resource(name="loginBean")
    private User loginBean; //로그인 여부에 따라 상단메뉴바가 다르게 보이도록 하기 위해 주입받음
//인터셉터 -> 등록
public void addInterceptors(InterceptorRegistry re) {
    WebMvcConfigurer.super.addInterceptors(re);

    TopMenuInterceptor top=new TopMenuInterceptor(topMenuService, loginBean);

    InterceptorRegistration re1=re.addInterceptor(top);//TopMenuInterceptor등록
    re1.addPathPatterns("/**"); //모든경로로 매핑해도 다 뜨도록..컨트롤러 전에 preHandle
}

위와 같이 코드 추가

아래는 전체코

package kr.bit.config;

import kr.bit.beans.User;
import kr.bit.interceptor.TopMenuInterceptor;
import kr.bit.mapper.BoardMapper;
import kr.bit.mapper.TopMenuMapper;
import kr.bit.mapper.UserMapper;
import kr.bit.service.TopMenuService;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.*;

@Configuration
@EnableWebMvc
@ComponentScan("kr.bit.controller")
@ComponentScan("kr.bit.dao")
@ComponentScan("kr.bit.service")
@PropertySource("/WEB-INF/properties/db.properties")
public class ServletAppContext implements WebMvcConfigurer {

    @Value("${db.classname}")
    private String db_classname;

    @Value("${db.url}")
    private String db_url;

    @Value("${db.username}")
    private String db_username;

    @Value("${db.password}")
    private String db_password;

    @Autowired
    private TopMenuService topMenuService; //@service

    @Resource(name="loginBean")
    private User loginBean; //로그인 여부에 따라 상단메뉴바가 다르게 보이도록 하기 위해 주입받음

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        WebMvcConfigurer.super.configureViewResolvers(registry);
        registry.jsp("/WEB-INF/views/", ".jsp");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        WebMvcConfigurer.super.addResourceHandlers(registry);
        registry.addResourceHandler("/**").addResourceLocations("/resources/");
    }

    @Bean
    public BasicDataSource dataSource() {
        BasicDataSource source= new BasicDataSource();
        source.setDriverClassName(db_classname);
        source.setUrl(db_url);
        source.setUsername(db_username);
        source.setPassword(db_password);

        return source;
    }

    @Bean
    public SqlSessionFactory factory(BasicDataSource source) throws Exception{

        SqlSessionFactoryBean fac=new SqlSessionFactoryBean();
        fac.setDataSource(source);
        SqlSessionFactory factory=fac.getObject();
        return factory;
    }

    @Bean
    public MapperFactoryBean<BoardMapper> board_mapper(SqlSessionFactory factory) throws Exception{

        MapperFactoryBean<BoardMapper> fac =
                new MapperFactoryBean<BoardMapper>(BoardMapper.class);

        fac.setSqlSessionFactory(factory);
        return fac;

    }
    @Bean
    public MapperFactoryBean<TopMenuMapper> top_mapper(SqlSessionFactory factory) throws Exception{

        MapperFactoryBean<TopMenuMapper> fac =
                new MapperFactoryBean<TopMenuMapper>(TopMenuMapper.class);

        fac.setSqlSessionFactory(factory);
        return fac;

    }
    @Bean
    public MapperFactoryBean<UserMapper> user_mapper(SqlSessionFactory factory) throws Exception{

        MapperFactoryBean<UserMapper> fac =
                new MapperFactoryBean<UserMapper>(UserMapper.class);

        fac.setSqlSessionFactory(factory);
        return fac;

    }
    //인터셉터 -> 등록
    public void addInterceptors(InterceptorRegistry re) {
        WebMvcConfigurer.super.addInterceptors(re);

        TopMenuInterceptor top=new TopMenuInterceptor(topMenuService, loginBean);

        InterceptorRegistration re1=re.addInterceptor(top);//TopMenuInterceptor등록
        re1.addPathPatterns("/**"); //모든경로로 매핑해도 다 뜨도록..컨트롤러 전에 preHandle
    }

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }

    @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource res=
                new ReloadableResourceBundleMessageSource();

        res.setBasename("/WEB-INF/properties/error");
        return res;
    }
}

 

TopMenuInterceptor

loginBean과 관련된 부분 주석처리해제 및 추가

 

package kr.bit.interceptor;

import kr.bit.beans.BoardInfo;
import kr.bit.beans.User;
import kr.bit.service.TopMenuService;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

public class TopMenuInterceptor implements HandlerInterceptor {

    private TopMenuService topMenuService;

    @Resource(name = "loginBean")   //
    private User loginBean;			// 주석처리 해제

    public TopMenuInterceptor(TopMenuService topMenuService) {
        this.topMenuService = topMenuService;
        this.loginBean = loginBean; //추가
    }

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {

        List<BoardInfo> team = topMenuService.getTopMenuList(); //select .. 1,2,1팀,2팀
        request.setAttribute("team", team);
        request.setAttribute("loginBean",loginBean); // 추가
        return true;
    }
}

 

 

top_menu.jsp

절대값주소 변경 및 c:chosse, c:when 추가

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="root" value="${pageContext.request.contextPath }/"/>

<nav class="navbar navbar-expand-md bg-dark text-white fixed-up shadow-lg">
    <a class=navbar-brand" href="${root }main">Board Project</a>
    <div class="container-fluid">
        <button class="navbar-toggler" type="button" data-toggle="collapse"
                data-target="#navbarNav">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav">
                <c:forEach var="obj" items="${team }">
                    <li class="nav-item">
                        <a href="${root }board/main?board_info_idx=${obj.board_info_idx}"
                           class="nav-link">${obj.board_info_name}</a>
                    </li>
                </c:forEach>
            </ul>

            <ul class="navbar-nav ml-auto">
                <c:choose>
                    <c:when test="${loginBean.userLogin==true}">
                        <li class="nav-item">
                            <a class="nav-link" href="${root }user/modify">Modify</a>
                        </li>

                        <li class="nav-item">
                            <a class="nav-link" href="${root }user/logout">Log Out</a>
                        </li>
                    </c:when>
                    <c:otherwise>
                        <li class="nav-item">
                            <a class="nav-link" href="${root }user/login">Log In</a>
                        </li>

                        <li class="nav-item">
                            <a class="nav-link" href="${root }user/join">Join Us</a>
                        </li>
                    </c:otherwise>
                </c:choose>
            </ul>
        </div>
    </div>
</nav>

UserContrlloer

코드 추가

@GetMapping("/logout")
public String logout() {
    loginBean.setUserLogin(false);
    return "user/logout";
}

 

logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<c:set var="root" value="${pageContext.request.contextPath }/" />

<script>
    alert("LogOut!");
    location.href="${root }main";
</script>

 

로그인 되어 변경된 상단바 메뉴

 

LoginInterceptor

package kr.bit.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

import kr.bit.beans.User;

public class LoginInterceptor implements HandlerInterceptor{
    
    private User loginBean;
    
    public LoginInterceptor(User loginBean) {
       this.loginBean=loginBean;
    }
    //로그인 안되어있으면 주소를 입력해도 못들어가도록 막아죠~~
    
    @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
             throws Exception {

          if(loginBean.isUserLogin()==false) {
             String str=request.getContextPath();
             
             response.sendRedirect(str+"/user/not_login");
             return false;
          }
          return true;
       }

}

 

ServletAppContext

인터셉트 추가

  public void addInterceptors(InterceptorRegistry re) {
      WebMvcConfigurer.super.addInterceptors(re);

      TopMenuInterceptor top = new TopMenuInterceptor(topMenuService, loginBean);

      InterceptorRegistration re1 = re.addInterceptor(top);//TopMenuInterceptor등록
      re1.addPathPatterns("/**"); //모든경로로 매핑해도 다 뜨도록..컨트롤러 전에 preHandle

      LoginInterceptor login = new LoginInterceptor(loginBean);
InterceptorRegistration re2= re.addInterceptor(login);

re2.addPathPatterns("/user/modify", "user/logout","/board/*");
re2.excludePathPatterns("/board/main");

  }

 

not_login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<c:set var="root" value="${pageContext.request.contextPath }/" />

<script>

	alert('You have to Login')
	location.href="${root}user/login"

</script>


정보수정

modify.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<c:set var="root" value="${pageContext.request.contextPath }/" />
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>우리반 화이팅</title>
    <!-- Bootstrap CDN -->
    <link rel="stylesheet"
          href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
    <script
            src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script
            src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
    <script
            src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<body>
<c:import url="/WEB-INF/views/include/top_menu.jsp" />
<div class="container" style="margin-top: 100px">
    <div class="row">
        <div class="col-sm-3"></div>
        <div class="col-sm-6">
            <div class="card shadow">
                <div class="card-body">
                    <form:form action="${root}user/modify_pro" method="post" modelAttribute="modifyBean">
                        <form:hidden path="existId"/>
                        <div class="form-group">
                            <form:label path="user_name">이름</form:label>
                            <form:input type="text" path="user_name" class="form-control" readonly="true"/>
                            <form:errors path="user_name" style='color:red'/>
                        </div>

                        <div class="form-group">
                            <form:label path="user_id">아이디</form:label>
                            <div class="input-group">
                                <form:input class="form-control" path="user_id" readonly="true"/>
                                </div>
                            </div>
                        <div class="form-group">
                            <form:label path="user_pw">비밀번호</form:label>
                            <form:password path="user_pw" class="form-control"/>
                            <form:errors path="user_pw" style='color:red'/>
                        </div>


                        <div class="form-group">
                            <form:label path="user_pw2">비밀번호 확인</form:label>
                            <form:password path="user_pw2" class="form-control"/>
                            <form:errors path="user_pw2" style='color:red'/>
                        </div>

                        <div class="form-group">
                            <div class="text-right">
                                <button type="submit" class="btn btn-primary">정보수정</button>
                            </div>

                        </div>
                    </form:form>
                </div>
            </div>
        </div>
    </div>
    <c:import url="/WEB-INF/views/include/bottom_menu.jsp" />
</body>
</html>

UserController

아래 코드 추가

@GetMapping("/modify")
public String modify(@ModelAttribute("modifyBean") User modifyBean) {

    return "user/modify";
}

@PostMapping("/modify_pro")
public String modify_pro(@ModelAttribute("modifyBean") User modifyBean,
                    BindingResult result) {
    if (result.hasErrors()) {
       return "user/modify";
    }
    return "user/modify_success";
}

 

전체코드

package kr.bit.controller;

import javax.annotation.Resource;
import javax.validation.Valid;

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.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import kr.bit.beans.User;
import kr.bit.service.UserService;
import kr.bit.validator.UserValidator;

@Controller
@RequestMapping("/user")
public class UserController {
    
    @Autowired
    private UserService userService;  //컨트롤러 전후 단계 - 비즈니스로직 (service)
    
    @Resource(name="loginBean")
    private User loginBean;  // 로그인 여부확인으로 세션영역에 담아 놓은거 자동주입받음

    @GetMapping("/modify")
    public String modify(@ModelAttribute("modifyBean") User modifyBean) {

       return "user/modify";
    }

    @PostMapping("/modify_pro")
    public String modify_pro(@ModelAttribute("modifyBean") User modifyBean,
                       BindingResult result) {
       if (result.hasErrors()) {
          return "user/modify";
       }
       return "user/modify_success";
    }

    
    @GetMapping("/modify")
    public String modify() {
       return "user/modify";
    }
    
    @GetMapping("/logout")
    public String logout() {
       loginBean.setUserLogin(false);  //로그인 되어있는 상태 아님
       return "user/logout";
    }
    
    @GetMapping("/login")
    public String login(@ModelAttribute("loginProBean") User loginProBean, @RequestParam(value="fail", defaultValue = "false") boolean fail, Model model) {
       
       model.addAttribute("fail", fail);
       return "user/login";
    }
    
    @PostMapping("/login_pro")
    public String login(@Valid @ModelAttribute("loginProBean") User loginProBean, BindingResult result) {
       if(result.hasErrors()) {
             return "user/login";
          }
       
       userService.getLoginUser(loginProBean);  // 로그인 성공하면 user_idx, user_name 추출
       
       if(loginBean.isUserLogin()==true) {
           return "user/login_success";
       }
       else {
          return "user/login_fail";
       }
         
       }
    
    @GetMapping("/join")
    public String join(@ModelAttribute("joinBean") User joinBean) {  //상단메뉴 - 회원가입
       return "user/join";
    }
    
    @PostMapping("/join_pro")  //join
    public String join_pro(@Valid @ModelAttribute("joinBean") User joinBean, 
                           BindingResult result) {
       
       if(result.hasErrors()) {
          return "user/join";
       } //에러있음 원래 회원가입 폼
       
       userService.addUser(joinBean); //db에 삽입 (insert)
       
       return "user/join_success";
    }

    @GetMapping("/not_login")
    public String not_login() {
       return "user/not_login";
    }
    
    
    @InitBinder
    public void initBinder(WebDataBinder binder) {
       
       UserValidator v1=new UserValidator();
       binder.addValidators(v1);  
    }
}






 

UserMapper

modify 추가

package kr.bit.mapper;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;

import kr.bit.beans.User;
import org.apache.ibatis.annotations.Update;

public interface UserMapper {
    
    @Select("select user_name from user_table where user_id=#{user_id}")
    String existId(String user_id);
    
    
    @Insert("insert into user_table(user_name, user_id, user_pw) values(#{user_name}, #{user_id}, #{user_pw})")
    void addUser(User joinBean);
    
    //아이디랑 비번 검사해서 user_idx, user_name추출
    @Select("select user_idx, user_name from user_table where user_id=#{user_id} and user_pw=#{user_pw}")
    User getLoginUser(User loginProBean);
    
    @Select("select user_id, user_name from user_table where user_idx=#{user_idx}")
    User getModifyUser(int user_idx);
    
    @Update("update user_table set user_pw=#{user_pw} where user_idx=#{user_idx}")
    void modifyUser(User modifyBean);
}

 

UserDao

modify코드 추가

package kr.bit.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import kr.bit.beans.User;
import kr.bit.mapper.UserMapper;

@Repository
public class UserDao {

    @Autowired
    private UserMapper userMapper;

    public String existId(String user_id) {
        return userMapper.existId(user_id);
    }

    public void addUser(User joinBean) {
        userMapper.addUser(joinBean);
    }

    public User getLoginUser(User loginProBean) {
        return userMapper.getLoginUser(loginProBean);

    }

    public User getModifyUser(int user_idx) {
        return userMapper.getModifyUser(user_idx);
    }

	public void modifyUser(User modifyBean) {
        userMapper.modifyUser(modifyBean);
    }

}

 

UserService

package kr.bit.service;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import kr.bit.beans.User;
import kr.bit.dao.UserDao;

@Service
public class UserService {

    @Autowired
    private UserDao userDao;
    
    @Resource(name="loginBean")  //RootAppContext 세션영역에 설정한 빈 이름과 같기 때문에 주소값 자동주입
    private User loginBean;
    
    public boolean existId(String user_id) {
       
       String user_name=userDao.existId(user_id);
       if(user_name==null) {
          return true; //  사용할 수 있는 아이디면
       }
       return false; 
    }
    
    public void addUser(User joinBean) {
       userDao.addUser(joinBean);
    }
    
    public void getLoginUser(User loginProBean) {
       User loginProBean2 = userDao.getLoginUser(loginProBean);
       if(loginProBean2 != null) {
          loginBean.setUser_idx(loginProBean2.getUser_idx());  
          //로그인 되어있는 사람의 idx값 가져와서 User의 클래스 필드(user_id)에 세팅
          loginBean.setUser_name(loginProBean2.getUser_name());
          loginBean.setUserLogin(true);  //로그인이 되어있는 상태이므로 true
          
          
          
          // 비번, 아이디가 일치하면 -> 로그인이 된 상태라면
          // 세션영역에 담은 loginBean객체로부터 idx, name, 로그인 여부확인을 설정할거임
       }
    }

    public void getModifyUser(User modifyBean) {
       User user = userDao.getModifyUser(loginBean.getUser_idx()); //로그인한 사람의 idx 기준으로 name, id 추출

       modifyBean.setUser_id(user.getUser_id());
       modifyBean.setUser_name(user.getUser_name());
       modifyBean.setUser_idx(user.getUser_idx());

    }

    public void modifyUser(User modifyBean) {

       modifyBean.setUser_idx(loginBean.getUser_idx());
       userDao.modifyUser(modifyBean); // update
    }
}

 

UserController

modify 부분 추가

package kr.bit.controller;

import javax.annotation.Resource;
import javax.validation.Valid;

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.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import kr.bit.beans.User;
import kr.bit.service.UserService;
import kr.bit.validator.UserValidator;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;  //컨트롤러 전후 단계 - 비즈니스로직 (service)

    @Resource(name = "loginBean")
    private User loginBean;  // 로그인 여부확인으로 세션영역에 담아 놓은거 자동주입받음

    @GetMapping("/modify")
    public String modify(@ModelAttribute("modifyBean") User modifyBean) {

        return "user/modify";
    }

    @PostMapping("/modify_pro")
    public String modify_pro(@ModelAttribute("modifyBean") User modifyBean,
                             BindingResult result) {
        if (result.hasErrors()) {
            return "user/modify";
        }
        userService.modifyUser(modifyBean);
        return "user/modify_success";
    }

    @GetMapping("/modify")
    public String modify() {
        return "user/modify";
    }

    @GetMapping("/logout")
    public String logout() {
        loginBean.setUserLogin(false);  //로그인 되어있는 상태 아님
        return "user/logout";
    }

    @GetMapping("/login")
    public String login(@ModelAttribute("loginProBean") User loginProBean, @RequestParam(value = "fail", defaultValue = "false") boolean fail, Model model) {

        model.addAttribute("fail", fail);
        return "user/login";
    }

    @PostMapping("/login_pro")
    public String login(@Valid @ModelAttribute("loginProBean") User loginProBean, BindingResult result) {
        if (result.hasErrors()) {
            return "user/login";
        }

        userService.getLoginUser(loginProBean);  // 로그인 성공하면 user_idx, user_name 추출

        if (loginBean.isUserLogin() == true) {
            return "user/login_success";
        } else {
            return "user/login_fail";
        }

    }

    @GetMapping("/join")
    public String join(@ModelAttribute("joinBean") User joinBean) {  //상단메뉴 - 회원가입
        return "user/join";
    }

    @PostMapping("/join_pro")  //join
    public String join_pro(@Valid @ModelAttribute("joinBean") User joinBean,
                           BindingResult result) {

        if (result.hasErrors()) {
            return "user/join";
        } //에러있음 원래 회원가입 폼

        userService.addUser(joinBean); //db에 삽입 (insert)

        return "user/join_success";
    }

    @GetMapping("/not_login")
    public String not_login() {
        return "user/not_login";
    }


    @InitBinder
    public void initBinder(WebDataBinder binder) {

        UserValidator v1 = new UserValidator();
        binder.addValidators(v1);
    }
}






 

UserValidator

가입때 뿐만 아니라 정보수정시에도 비밀번호 확인할 수 있도록 추가변경

@Override
public void validate(Object target, Errors errors) {
    
    User user=(User)target;
    String beanName=errors.getObjectName();
    
    //join.jsp에서 폼에다 데이터 입력 
    //-> modelAttribute로 User클래스의 필드에 데이터 값이 저장되어 있는 상태(값 주입한 상태)
    
    if(beanName.equals("joinBean") || beanName.equals("modifyBean")) {
       
       if(user.getUser_pw().equals(user.getUser_pw2())==false) {
          errors.rejectValue("user_pw", "NotEqual");
          errors.rejectValue("user_pw2", "NotEqual");
       }
       
       //비밀번호와 비밀번호확인이 같아야됨.. 유효성검사하는 어노테이션이 따로 없음 -> 개발자가 정의해야함(커스터마이징)
       
    }

 

db.properties 추가

Size.modifyBean.user_pw=4글자 이상, 10글자 미만으로 작성해주세요
Pattern.modifyBean.user_pw=영문으로만 작성해주세요

Size.modifyBean.user_pw2=4글자 이상, 10글자 미만으로 작성해주세요
Pattern.modifyBean.user_pw2=영문으로만 작성해주세요

NotEqual.modifyBean.user_pw=비밀번호가 일치하지 않습니다
NotEqual.modifyBean.user_pw2=비밀번호가 일치하지 않습니다

 

modify_success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<c:set var="root" value="${pageContext.request.contextPath }/" />

<script>

    alert('수정되었습니다')
    location.href="${root}user/modify"

</script>

 

728x90

+ Recent posts