9/22

웹어플리케이션을 작성하는법을 계속해서 배울 예정

model은 우리가 만드는것이 아니라 spring이 만들어줌

view 는 jsp를 이용해 만드는것을 배웠다.

 

${ } : expression language (EL) 

Model 은 spring 에서 생성해주는것이고 

model의 addAttribute는 map처럼 key와 value 형식으로 값을 갖고 있다.

그리고 jsp에서 key를 넣으면 

controller 부분에서 value로 저장 했던 부분이 호출한 key 에 맞게 출력 된다.


model 속성의  값이 배열일 경우 사용법

controller ▼

jsp ▼

출력 ▼


 

배열 변수를 속성 값으로 불러올 경우 

controller ▼

jsp ▼

출력 ▼


List를 속성 값으로 불러오는 경우

controller ▼

jsp ▼

${ 불러올 대상의 key [ " value로 지정한 list의 index번호 " ] } 이런 형식으로 불러온다.

출력 ▼


Map을 속성 값으로 불러오는 경우

controller ▼

jsp ▼

jsp에서 불러오는 방법이 2 종류가 있다.

방법 1 ▼

${ 불러올 대상의 key [ " value로 지정한 map의 불러올 key " ] } 이런 형식으로 불러온다.

 

방법2 ▼

${ 불러올 대상의 key . value로 지정한 map의 불러올 key } 의 형식으로 불러온다.

 

출력 ▼


Map을 속성 값으로 갖고올때 주의점 (띄어 쓰기, 특수문자, 첫글자가 숫자)

controller ▼

jsp ▼

첫번째 줄은 일반적인 경우 

두번째 줄은 띄어쓰기가 있는경우

세번째 줄은 특수문자가 들어간 경우

${ 불러올 대상의 key [ " value로 지정한 map의 불러올 key " ] } 이런 형식으로만 불러올 수 있다.

 

출력 ▼


변수명은 Dto에 저장 해두고 setter로 값만 지정해서 사용 하는 방법

controller ▼

컨트롤러에서 Dto 객체를 생성 후 생성한 객체의 변수에 값을 지정 한다 

값을 지정 할 때에는 타입을 맞춰줘야 한다.

 

Dto▼

Dto에서 변수를 생성 해주고 클래스에 @Data 어노테이션을 달아줘 자동으로 getter setter 를 생성 해준다.

 

jsp ▼

Dto에 설정한 변수명에 맞게 호출해주고 list로 저장 했던 것은 원하는 인덱스 번호를 넣어 출력해준다.

 

출력화면 ▼


변수명은 Dto에 저장 해두고Dto타입으로 list객체를 생성하여  list.add 로 값만 지정해서 사용 하는 방법

controller ▼

list를 사용 하여 지정한Dto 타입으로 리스트를 생성 한후

원하는 만큼 add 를 이용 해 Dto 타입으로 값 을 넣어주는데 이때 Dto 에 생성했던 지역변수와
변수 타입에 맞게 값을 생성해 주어야 에러가 발생 안한다.

그리고 addAttribute로 model에 넣어준다.

 

Dto▼

Dto의 지역 변수를 생성 해주고 

생성자를 생성해주는 어노테이션인 @AllargsConstructor를 생성해주고 변수를 받는 생성자도 만들어야 하기때문에
어노테이션인 @NoArgsConstructor를 만들어 오버로딩 시켜준다.

 

jsp ▼

그리고 원하는 출력 값에 맞게 jsp에호출 하여 사용해준다.

 

출력화면 ▼


jsp ] 내부의 콘텐츠를 반복 출력 방법

주요 attribute : begin , end, var, items, varStatus 가 있다.

사용 방법 ▼

<c:forEach begin="1" end="3">
	반복할 대상 
</c:forEach>

위와 같은 방식으로 코드를 작성 하고 반복한 대상을 사이에 넣어 작성해준다.

  • begin : 시작 횟수 번호 -> 단 음수는 불가능 하다.
  • end : 반복하는 횟수 -> 단 begin이 0부터 시작하면 지정한 end의 수보다 +1 더한다.

var 를 추가하여 사용한 경우 ▼

<C:forEach begin="0" end="2" var="num">
    <li>num : ${ num }</li>
</C:forEach>

결과 ▼

위에서 말한것과 같이 0에서 시작하여 2가 될때까지 반복하여 코드를 출력 해줬다 

이때 var의 역할은 

  • var : begin의 값이 var에 들어가고 var의 변수명은 아무거나 지어도 괜찮다.

사용할 때에는 변수명을 바로 쓰는것이 아니라 ${ }  에 넣어서 사용해야 원하는 값을 사용 할 수 있다.


items는 list와 같은 배열타입을 이용할때 유용하다 ▼

<c:forEach items="${myList}" var="item">
    <li>car : ${item}</li>
</c:forEach>

controller에서 저장한 값 ▼

결과 ▼

  •  items : items는 위에서 말한것과 같이 배열타입을 전부 순회하는 것이고 순회하면서 값을 var에 저장하는 
    일을 한다.

그러므로 위에서의 코드는 var에 값을 item이란 변수에 담아 순회할때마다 값을 변경해 html에 출력 해준다.


varStatus의 이용 방법 ▼

<c:forEach begin="0" end="3" var="n" varStatus="status">
    <div class="box">
        <div class="content1">
            n : ${n}
        </div>
        <div class="content2">
            <div>count : ${status.count}</div>
            <div>index : ${status.index}</div>
            <div>current : ${status.current}</div>
            <div>first : ${status.first}</div>
            <div>last : ${status.last}</div>
        </div>
    </div>
</c:forEach>

결과 ▼

varStatus : 현재 받아온  var의 디테일한 정보 상태를 출력 해주는 명령어다. 변수명은 아무 스트링 타입으로 받아
사용 가능하고 변수명 뒤에 점을 붙여 원하는 기능 을 붙여 사용하는 것이다.

varStatus의 기능 들 ▼

  • count : 반복한 횟수의 숫자
  • index : 배열 타입으로 인식하고 있어서 해당 var의 인덱스를 출력한다
  • current : 이전의 반복한 횟수를 출력
  • first : 첫번째인지 아닌지 불리안 타입으로 출력
  • last : 마지막인지 아닌지 불리안 타입으로 출력

오늘은 위와 같은 기능들을 배웠다 처음에는 단순해서 배우는 기분이 안들었지만 점점 살이 붙으니 난이도가 생긴거 같다 

선생님께서 익숙해 지도록 반복연습을 시켜주셔서 많은 도움이 되는거 같다 

오랜만에  출력값을 보기 위해 html을 다시 쓰게 되었는데 많이 있어버린거 같아 놀랐다.

주말간 복습을 해야할 듯 싶다.

 

 

 

 

 

 

jetl -> jsp standard tag library

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts