JSTL XML <x:set> Tag


The <x:set> tag sets a variable to the value of an XPath expression.

If the XPath expression results in a boolean, <x:set> sets a java.lang.Boolean object; for a string, java.lang.String; and for a number, java.lang.Number.


The <x:set> tag has following attributes:

AttributeDescription RequiredDefault
varA variable that is set to the value of the XPath expressionYesBody
selectThe XPath expression to be evaluatedNoNone
scopeScope of the variable specified in the var attributeNoPage


Following example to show you a usage of <x:set> tag:

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

  <title>JSTL Tags</title>
<h3>Books Info:</h3>

<c:set var="xmltext">
      <name>Padam History</name>
      <name>Great Mistry</name>

<x:parse xml="${xmltext}" var="output"/>
<x:set var="fragment" select="$output//book"/>
<b>The price of the second book</b>: 
<c:out value="${fragment}" />

Now let us try to access above JSP, this would produce following result:

Books Info:

The price of the second book:[[book: null], [book: null]]