📌 JSTL 예제
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%-- /jsp3/src/main/webapp/jstl/jstlex.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL을 이용한 화면 처리</title>
</head>
<body>
<fmt:requestEncoding value="utf-8"/><%-- == request.setCharacterEncoding("utf-8"); --%>
<form method="post" name="f">
이름 : <input type="text" name="name"><br>
입사일 : <input type="text" name="hiredate"><br>
급여 : <input type="text" name="salary"><br>
담당 업무 : <input type="checkbox" name="job" value="서무" >서무
<input type="checkbox" name="job" value="개발" >개발
<input type="checkbox" name="job" value="비서" >비서
<input type="checkbox" name="job" value="유지보수" >유지보수<br>
<input type="submit" value="전송">
<h3>파라미터 값 출력하기</h3>
이름 : ${param.name}<br>
입사일 : ${param.hiredate}<br>
급여 : ${param.salary}<br>
담당업무 : ${param.job}<br>
</form>
</body>
</html>
- 파라미터 값들이 유지되기를 바랄 때
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%-- /jsp3/src/main/webapp/jstl/jstlex.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL을 이용한 화면 처리</title>
</head>
<body>
<fmt:requestEncoding value="utf-8"/><%-- == request.setCharacterEncoding("utf-8"); --%>
<%-- paramValues.job : job인 파라미터의 값들을 배열로 리턴
${fn:join(배열,',')} : 배열의 요소들을 ,로 연결하여 하나의 문자열 리턴
var="jobs"<= jobs : 문자열 데이터
jobs :"개발,유지보수"
--%>
<c:set var="jobs" value="${fn:join(paramValues.job,',')}"/>
<form method="post" name="f">
이름 : <input type="text" name="name" value="${param.name}"><br>
입사일 : <input type="text" name="hiredate" value="${param.hiredate}"><br>
급여 : <input type="text" name="salary" value="${param.salary}"><br>
담당 업무 : <input type="checkbox" name="job" value="서무"
<c:if test="${fn:contains(jobs,'서무')}">checked</c:if>>서무
<input type="checkbox" name="job" value="개발"
<c:if test="${fn:contains(jobs,'개발')}">checked</c:if>>개발
<input type="checkbox" name="job" value="비서"
<c:if test="${fn:contains(jobs,'비서')}">checked</c:if>>비서
<input type="checkbox" name="job" value="유지보수"
<c:if test="${fn:contains(jobs,'유지보수')}">checked</c:if>>유지보수<br>
<input type="submit" value="전송">
<h3>파라미터 값 출력하기</h3>
이름 : ${param.name}<br>
입사일 : ${param.hiredate}<br>
급여 : ${param.salary}<br>
담당업무 : ${jobs}<br>
<%-- ${paramValues.job}게만 작성하면 배열을 출력하게 되어서 원하는 결과가 도출 되지 않는다.
담당업무 : [Ljava.lang.String;@24eb8bc5
--%>
</form>
</body>
</html>
📌 - 입사일을 yyyy년 MM월 dd일 E요일 형태로 출력
<h3>입사일을 yyyy년 MM월 dd일 E요일 형태로 출력</h3>
<fmt:parseDate value="${param.hiredate}" pattern="yyyy-MM-dd" var="hiredate" />
입사일 : <fmt:formatDate value="${hiredate}" pattern="yyyy-MM-dd E요일" />
📌 - 급여, 연봉 구하기(세자리 마다 ,출력)
<h3>급여, 연봉 세자리 마다 ,출력. 연봉 : 급여*12 </h3>
<fmt:formatNumber value="${param.salary}" pattern="###,###" var="salary"/>
급여 : ${salary}<br>
<fmt:formatNumber value="${param.salary*12}" pattern="###,###" var="pay"/>
연봉 : ${pay}
📌 JSTL 예외처리
<h3>입사일을 yyyy년 MM월 dd일 E요일 형태로 출력</h3>
<%-- <fmt:parseDate...> 예외 발생 => 발생된 예외각체를 formatexception 객체에 저장 --%>
<c:catch var="formatexception">
<fmt:parseDate value="${param.hiredate}" pattern="yyyy-MM-dd" var="hiredate" />
</c:catch>
<%-- ${formatexception == null} : 발생된 예외가 없는경우 --%>
<c:if test="${formatexception == null}">
입사일 : <fmt:formatDate value="${hiredate}" pattern="yyyy-MM-dd E요일" />
</c:if>
<%-- ${formatexception != null} : 발생된 예외가 있음 --%>
<c:if test="${formatexception != null}">
입사일은 YYYY-MM-DD 형태로 입력하세요.
</c:if>
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL1 방식 - 회원가입(joinForm, join) (0) | 2023.04.19 |
|---|---|
| [JSP] MVC MODEL1 방식 - web.xml (0) | 2023.04.19 |
| [JSP] EL(표현식),JSTL - JSTL의 EL 함수 - fn (0) | 2023.04.19 |
| [JSP] EL(표현식),JSTL - JSTL 형식화 태그 fmt (formatNumber, formatDate, pattern) (0) | 2023.04.19 |
| [JSP] EL(표현식),JSTL - JSTL core 태그: 반복문(forEach) - List 객체, Map객체, 배열 객체 (0) | 2023.04.18 |