Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 XPath 표현식 테스트하기 – JSTL 태그 완벽 가이드

JSP에서 XML 데이터를 다룰 때 XPath 표현식을 손쉽게 검증하고 싶다면 JSTL의 <x:if> 태그를 활용하면 됩니다. 이 태그는 지정된 XPath 테스트 표현식을 평가한 뒤, 결과가 참(true)이면 태그 내부의 본문(body)을 실행합니다. 반대로 조건이 거짓(false)이면 본문은 아무런 처리 없이 무시됩니다.

<x:if> 태그의 주요 속성

<x:if> 태그는 다음과 같은 속성을 제공합니다.

속성설명필수 여부기본값
select평가할 XPath 표현식필수없음
var조건 평가 결과를 저장할 변수의 이름선택없음
scopevar 속성으로 지정한 변수의 유효 범위(scope)선택Page

사용 예제

다음은 <x:if> 태그의 실제 사용 예입니다. XML 문서를 파싱한 후 두 가지 조건을 각각 검사하는 방식으로 작성되었습니다.

<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://java.sun.com/jsp/jstl/xml" %>
<html>
   <head>
      <title>JSTL x:if Tags</title>
   </head>
   <body>
      <h3>Books Info:</h3>
      <c:set var = "xmltext">
         <books>
            <book>
               <name>Padam History</name>
               <author>ZARA</author>
               <price>100</price>
            </book>
            <book>
               <name>Great Mistry</name>
               <author>NUHA</author>
               <price>2000</price>
            </book>
         </books>
      </c:set>
      <x:parse xml = "${xmltext}" var = "output"/>
      <x:if select = "$output//book">
         Document has at least one <book> element.
      </x:if>
      <br />
      <x:if select = "$output/books[1]/book/price > 100">
         Book prices are very high
      </x:if>
   </body>
</html>

위 코드의 핵심 흐름을 살펴보면 다음과 같습니다.

  • c:set 태그로 도서 정보를 담은 XML 문자열을 변수에 저장합니다.
  • x:parse 태그로 해당 문자열을 파싱하여 output 변수에 XML 문서로 저장합니다.
  • 첫 번째 x:if$output//book 경로에 요소가 존재하는지 확인합니다.
  • 두 번째 x:if는 첫 번째 책의 가격이 100보다 큰지 비교 연산자(>)로 검사합니다.

이제 위 JSP 페이지에 접속하면 다음과 같은 결과가 화면에 출력됩니다.

Books Info:
Document has at least one <book> element.
Book prices are very high

두 조건이 모두 참으로 평가되었기 때문에 각 <x:if> 블록의 메시지가 정상적으로 출력된 것을 확인할 수 있습니다. 이처럼 <x:if> 태그를 사용하면 JSP 환경에서도 별도의 자바 코드 작성 없이 XPath 표현식을 간편하게 테스트하고 조건 분기를 처리할 수 있습니다.