JSF subview Tag

This tag is used to create the sub-view of the view. It contains all JSF tags in a page that is included in another JSP page.

JSF subview Tag

JSF subview Tag

        

This tag is used to create the sub-view of the view. It contains all JSF tags in a page that is  included in another JSP page. It acts as a naming container so that the components inside it can be made unique. This naming container contains JSF tags on a nested page by <jsp:include> or the tag which includes the page dynamically. To include another JSP or JSF page, using <jsp:include> or <c:import>, we must use <f:subview> tag around it so that JSF process the included file properly. subview.jsp is the main page where subview tag is used to include next.jsp page.

Code Description :

  subview.jsp :

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<f:view locale="fr">
<html>
<head>
<link href="corestyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<h:form> 
<h:outputText value="Enter your name below"/><br><br>
<h:inputText id="ab" value="#{MessageBean.b}" required="true"/>
<h:message for="ab" errorClass="errors"/><br><br>
<h:commandButton value="go"/><br><br><br>

<f:subview id="next">
<jsp:include page="next.jsp" />
</f:subview>

</h:form>
</body>
</html>
</f:view>

  next.jsp :

<hr>
<b> RoseIndia JSF tutorial</b>
<hr>

Rendered Output :

Html Source Code :

<html>
<head>
<link href="corestyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form id="_id0" method="post" action="/coretag/pages/subview.jsf" enctype="application/x-www-form-urlencoded">
Enter your name below<br><br>
<input id="_id0:ab" type="text" name="_id0:ab" />
<br><br>
<input type="submit" name="_id0:_id3" value="go" /><br><br><br>
<hr><b> RoseIndia JSF tutorial</b><hr>
<input type="hidden" name="_id0" value="_id0" /></form>
</body>
</html>

Attributes that this tag uses are given below :

id : This is used to uniquely identify this component within the scope of enclosing  naming container.
binding : It takes value binding expression to bind this component to the backing bean property.
rendered : It takes the boolean value (default value is "true") that is used to specify whether this component should be rendered or not.