yahayaha

11. 목록 화면에 처리하고 등록하기 (JSTL) 본문

spring/프로젝트

11. 목록 화면에 처리하고 등록하기 (JSTL)

yaha 2024. 1. 24. 21:50

먼저 JSTL을 사용하기 위해서는 디렉티브 선언부가 필요함.

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

 

 

 

그리고 tr 부분을 for 루프가 돌아야 하기에 

<c:forEach>로 감싸줌. 그리고 irems에는 controller에서 list를 model에 list라는 이름으로 담았기에 list를 적어줌.

 

변수는 간단하게 board로 선언.

 

그리고 간단하게 <c:forEach> 와 <fmt>의 속성을 알아보면.

 

항복 설명 필수여부 기본값
var 사용할 변수명 필수 없음
items collection 객체(List, Map) 필수  
begin 반복 시작 index     
end 반복 종료 마지막 index  
step 반복할 때 마다 건너뛸 index 개수    
varStatus 반복 상태를 알 수 있는 변수    

 

태그명 내용
requestEncoding value 속성을 통해 지정한 문자 셋으로 변경함
setLocale 통화 기호나 시간 대역을 설정한 지역에 맞게 표시함
timeZone 특정 영역의 시간대를 설정함
setTimeZone 특정 영역의 시간대 설정 정보를 변수에 저장함
bundle basename 속성에 지정된 properties 파일을 읽음
setBundle properties  파일을 읽어와 다양한 영역에서 참조할 수 있게 설정
message bundle 태그를 통해 저장된 key로 value 가져옴
formatNumber 숫자를 특정 양식에 맞춰서 출력
parseNumber 문자열을 숫자 형식으로 변환
formatDate 날자 정보를 가진 객체를 특정 형식으로 변환해서 출력
parseDate 문자열을 날짜 형식으로 변환해서 출력

 

이런식으로 정리가 가능함. 더욱 자세한 설명은 구글링을 추천.

 

우선 이렇게 해두고  제대로 리스트가 뿌려지는지  톰켓 실행 후 확인.

 

리스트가 정상적으로 출력 된 걸 확인하고, 등록 작업까지 진행.

 

 

등록을 할 페이지가 필요함.

 

항상 사용자가 입력 할 수 있는것은 다 GET방식임 .

 

등록하는 링크와 JSP페이지만 있으면 됨.

 

그럼 GET으로 바로 만들어 봅시다.

 

Controller에 GetMapping추가.

 

그리고 register.jsp도 생성함.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%@include file="../includes/header.jsp" %>
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Board Register</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            <div class="row">
                <div class="col-lg-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            Board Register
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body">
                           <form action="/board/register" method="post">
                           	<div class="form-group">
                                 <label>Title</label>
                                 <input class="form-control" name="title">
                             </div>
                             <div class="form-group">
                                 <label>content</label>
                                 <textarea class="form-control" name="content" rows="5"></textarea>
                             </div>
                           	<div class="form-group">
                                 <label>Writer</label>
                                 <input class="form-control" name="writer">
                             </div>
                             <div class="dox-footer">
								<button type="submit" class="btn btn-primary">Submit</button>
							 </div>
                           </form>
                            
                        </div>
                        <!-- /.panel-body -->
                    </div>
                    <!-- /.panel -->
                </div>
                <!-- /.col-lg-12 -->
            </div>
            
            
                
<%@include file="../includes/footer.jsp" %>

이번에는 from 태그를 사용하고 input태그를 사용했음.

 

하지만 input 태그에서 가장 중요하고 명심해야하는 것중 하나가 name 속성임.

 

파라미터를 수집될때 이름이니까 name속성을 신경 써야함.

 

그 뒤에 저장하고 톰캣을 실행해서 보면 .

 

 

이쁘게 나오는걸 확인.

 

그리고 한번 submit을 눌러서 등록이 되는지 확인.

 

 

등록처리 완료.

 

 

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

2024 - 01 - 27

한글 필터 설정 추가

 

 

web.xml에 추가 할 내용.

<!-- 한글처리 -->
	<filter>
		<filter-name>encoding</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

 

추가 후 한글 테스트 

 

제대로 출력 되는걸 확인.