반응형

 

jar 사용

 

jar로 라이브러리를 이용할 경우 하단에 첨부된 파일을 라이브러리 폴더에 넣어줍니다.

jstl-1.2.jar
0.40MB

 

스프링(그래들)

 

build.gradle의 dependencies 사이에 의존성을 추가해줍니다.

 

dependencies {
 
     implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
    
}

 

스프링(메이븐)

 

pom.xml의 <dependencies></dependencies> 사이에 의존성을 추가해줍니다.

 

<dependencies>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

</dependencies>

 

 

JSP에서 JSTL 사용

 

최상단에 이렇게 라이브러리를 추가하여 JSP 문서에서 JSTL 태그를 사용할 수 있습니다.

 

<%@ page 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" %>

 

 

 

반응형
반응형

 

JSTL 라이브러리 import

 

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

 

예제

 

${fn:contains(문자열, 찾을 문자열)}

 

<c:set var="text" value="Hello World"/>

<c:if test="${fn:contains(text, 'Hello')}">
	<div>Hello가 포함된 문자열입니다.</div>
</c:if>

 

반응형
반응형

 

DB에 저장된 날짜를 가져올 때 웬만하면 날짜 포맷을 바꿔서 출력해야 합니다.

 

날짜 형식을 바꾸는 방법은 날짜의 타입에 따라 다른데 이때 사용하는 JSTL 태그는 아래 코드와 같습니다.

 

날짜(Date, LocalDateTime 등) 타입인 경우

(1) <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

(2) <fmt:formatDate value="${regDate}" pattern="yyyy-MM-dd HH:mm:ss"/>

 

JSTL 중 fmt 태그를 사용하기 위한 스크립틀릿(1)을 추가하고 아래 있는 태그 형식(2)으로 작성하면 됩니다.

 

별도로 <c:out value=""/>에 넣을 필요 없이 바로 출력됩니다.

 

 

주의할 부분은 fmt:formatDate의 value 값으로 들어갈 수 있는 타입은 날짜 타입만 허용되기 때문에 문자열로 저장된 날짜를 value에 넣을 경우 에러가 발생합니다.

 

 

문자열(String) 타입인 경우

(1) <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

(2) <c:out value="${fn:substring(regDate, 0, 16)}"/>

 

JSTL 메소드를 사용하기 위한 스크립틀릿(1)을 추가하고 아래 있는 태그 형식(2)으로 작성하면 됩니다.

 

JSTL의 메소드 처리는 value="" 안에서 이뤄지기 때문에 (2)처럼 <c:out/> 태그의 value="" 안에 작성해야 화면에 출력됩니다.

 

${fn:substring(데이터, 시작 인덱스, 마지막 인덱스 + 1)} 이렇게 작성하면 첫번째 매개변수로 들어온 데이터를 자를 수 있습니다.

 

 

예를 들어, ${fn:substring('2021-10-15 12:10:15)', 0, 16)}

 

이렇게 작성하면 '2021-10-15 12:10:15의 0번 인덱스에서 16번 바로 전 인덱스(15번 인덱스)까지 출력하여 결과는 2021-10-15 12:10가 출력됩니다.

반응형
반응형

컨트롤러에서 return 할 때 결과에 따라 메시지를 출력하고 페이지를 이동해야 하는 경우가 있습니다.

 

아래 코드는 메시지 출력 후 페이지 이동을 하기 위한 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="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>저장</title>
    <script type="text/javascript" src="<c:url value="/pluigs/jQuery/jquery-3.3.1.min.js"/>"></script>
</head>
<body onload="fn_search_list();">

<!-- 메시지 출력 후 이동할 페이지 지정 -->
<c:url var="searchUrl" value="/list.do"/>

<!-- 전자정부프레임워크 페이징 처리를 위한 모델 처리 form -->
<form:form modelAttribute="searchVO" id="searchForm" name="searchForm" action="${searchUrl}" method="post">
    <form:hidden path="pageIndex"/>
    <form:hidden path="pageUnit"/>
    <form:hidden path="searchCondition"/>
    <form:hidden path="searchKeyword"/>
    <form:hidden path="searchUseSe"/>
</form:form>

<script>

    /*********************************************************
	 * 메시지 alert()
	 ******************************************************** */
	<c:if test="${not empty message}">
	alert("${message}");
	</c:if>
    
	
    
    /*********************************************************
	 * 목록 처리
	 ******************************************************** */
    function fn_search_list() {
		<c:if test="${not empty path}">
		$("#searchForm").attr("action", "<c:url value="${path}" />");
		</c:if>
		$("#searchForm").submit();
	}
</script>

</body>
</html>

 

위처럼 작성하시고 model에 메시지와 이동 페이지 경로를 담아 jsp로 넘기면 alert()가 메소드를 띄운 후 폼 태그의 액션 경로에 모델에서 지정한 경로가 담기면서 페이징 정보를 담고 리스트로 이동합니다.

 

반응형

+ Recent posts