본문 바로가기

학원 일기/학원-Spring

스프링4

로그인 페이지에서 성공페이지로 이동같은  페이지 전환시키기위해 필요한 과정들

 

xml파일 > 디스패처에 > 해달패키지 포함

 

해당패키지에 Controller생성(=자바 클래스)

 

Controller 파일들을 분류할 폴더생성

폴더에 > 시작화면 파일, 전환화면 파일생성

 

ex) 아이디와 비밀번호의 값을 받고 아이디와 비밀번호가같을경우 성공페이지로 전환시키는 경우

 

Controller에는 @Controller 와 @RequestMapping을 이용하여

 

시작파일 ,전환 파일의 요청을 맵핑

또한 시작파일에서 전환파일로 보내는 요청또한 맵핑

 

======================아래는 응용해야하는 것들============================

 

@RequestMapping -옵션  { value = "맵핑할값지정" method =get/post방식 지정}

 

JSP에서 배운 vo방식으로 여러요청을 하나의클래스에 전부 받아들이는 vo클래스 생성후 매개변수로 전달받을수 있다

 

Model클래스의 활용 Model model을 객체로 전달받은후

 

model.addAttribute("키이름" , 넣을값) 으로 입력하면

viewreslover에서 키이름을 표현언어형식으로 해당화면에 사용가능하다

 

@ModelAttribute 어노테이션 이용하기

 

(ntmi.. form에서넘기는값은 다String타입이다)

 

매개변수에 @ModelAttribute("키이름")  <--String a 이런식으로 쓰면 컨트롤러중간에도 값사용가능

반환받는 페이지에서 키이름을 표현언어형식으로 사용가능하다

이것을 응용하여 키이름에 vo객체를 넣는다면

${ 키이름.아이디} ${키이름.비밀번호} 처럼 응용이 가능하다

 

redirect페이지 스프링에서 구현하기

특징

- forward형식이 아니기때문에 요청경로가 url에뜬다

- JSP에서는 요청에담긴 값이 redirect시에 소멸하는것이 맞지만

  스프링에서는 매개변수로 RedirectAttribute 변수명  을 전달받은후에

  변수명.addFalshAttribute("키이름", 값); 을지정해 전환할페이지 값을전달하거나 새로운값을 전달할수있따

 

사용방법

 

- return 경로를 redirect:/ ~~형식으로 지정해주면 된다

-  ~~형식이 폴더명/res_redirect 이였다면 res_redirect의 맵핑을 하나추가해주면 된다

 

 

JSTL이란 스크립트릿에서 if ,for문과같은것을 좀더 편하게쓰기위해 사용하는 라이브러리

ex) 디렉티브에

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 라고 입력후

 

<c:forEach> 태그형식을통해서 for문을 쓸수있다

<c:forEach var ="값을담을 객체명" items="${배열형태로 데이터를담은 객체명} varstatus="값을돌때마다 인덱스주소 를 저장한 변수명?"></c:forEach>

 

--------------------------------------------------------

 

처음에 연습처럼 컨트롤러 만 이용했다면 이제는 인터페이스,DAO,DO가 구현됐다 사용의미를 알아보자

 

인터페이스 - 다형성을위해

 

DO - 데이터를 하나의클래스에 담기위해

 

DAO - 전달받은 DO와 요청을통해 원하는값을 얻기또는 수정하기위해 DB에 접근하기위해

 

----------------------------------------------------------

 

경로개념 정리

 

* = 와일드카드

 

* 는 어떤경로든간에 모두포함 지금까지 tar.* <이런식으로 사용해서 tar로시작하는 모든경로를 다포함한다생각했다

맞는말이지만 엄밀하게는 tar.다음 첫번쨰 어떤경로가와도 그경로를포함한 모든경로를 다포함한다는것이다

 

이해를 돕기위한 예시로 tar/*/taa 라고 경로설정을 한다면

*에는 어떤것이와도 전부 포함이된다 하지만 tar/aaa/bbb/taa 처럼 2개이상의 경로가들어오면 

tar/*/taa 는 tar/aaa/bbb/taa를 잡아낼수 없다

 

반면에 ** 를 썼을때는 모든경로를 다잡아낼수있다.  

 

'학원 일기 > 학원-Spring' 카테고리의 다른 글

스프링6  (0) 2021.06.18
스프링5  (0) 2021.06.17
스프링2  (0) 2021.06.15
스프링2  (0) 2021.06.14
스프링  (0) 2021.06.11