JSF에서 XML 문서를 읽고 쓰는 방법에 대해서는 온라인으로 찾지 못했습니다. XALAN을 사용하는 JSTL과 함께 JSP에서 뭔가를 알고 있습니다. 예 :JSF에서 XML 파일 읽기 및 쓰기
다음 XML 파일은 /WEB-INF
에 정의되어 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<fruits>
<fruit>
<name>Orange</name>
<price>10</price>
</fruit>
<fruit>
<name>Banana</name>
<price>20</price>
</fruit>
<fruit>
<name>Apple</name>
<price>30</price>
</fruit>
</fruits>
이 문서는 다음과 같이 JSP로 읽을 수 있습니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<c:import var="items" url="/WEB-INF/TextXML.xml"/>
<x:parse var="fruits" doc="${items}"/>
<table rules="all" border="1">
<tr>
<th>index</th>
<th>Fruit Name</th>
<th>Price</th>
</tr>
<x:forEach var="item" select="$fruits/fruits/fruit" varStatus="loop">
<tr>
<td><c:out value="${loop.index+1}"/></td>
<td><x:out select="$item/name" /></td>
<td><x:out select="$item/price" /></td>
</tr>
</x:forEach>
</table>
이렇게하면 3 개의 열로 HTML 표가 채워집니다.
JSF에서 동일한 작업을 달성하려면 어떻게해야합니까? JAXB 또는 다른 것을 사용하면 어떻게 될까요?
매우 정확하고 간결한 예입니다. 많은 감사합니다. 이 방법으로 XML 파일에서 기본 CRUD 작업을 수행 할 수 있습니다 (기본적으로 select는 필자의 경우에만 필요하다). ('init()'메쏘드에서 던져지는 예외는'try ... catch {}'를 사용하여 던지기보다는 잡히게됩니다. 그렇지 않으면 컴파일 타임 오류가 발생하여 "*'@ PostConstruct' 주석이 붙은 메소드는 체크 된 예외를 던져서는 안된다. * "). – Tiny
일반적으로 파일은 서버 디스크 파일 시스템에 저장됩니다. 나는 그것을 $ {GlassFishHome}/domains/domain1/applications/my_xml_folder/fruits.xml'에 넣었고'System.getenv ("XML_LOCATION")과 같이 설정 한 환경 변수를 사용하여 파일 경로를 얻었습니다. . 올바른 방법을 따르고 있습니까? – Tiny