Tomahawk saveState tag

This attribute is useful in persisting the backing bean and its properties longer than request scope but shorter than session scope by saving the state with the component tree.

Tomahawk saveState tag

Tomahawk saveState tag

        

This attribute is useful in persisting the backing bean and its properties longer than request scope but shorter than session scope by saving the state with the component tree. Traditionally, state is saved with the help of HttpSession object. MyFaces works differently without the use of HttpSession object. All state information of the current view and the model beans are encoded automatically with the client response and get restored at the next client request. If you want to save the whole bean then it can also be done with this tag just specifying the name of  bean in EL expression in the value attribute. The same steps are followed in saving and restoring the whole bean as in the case of properties of bean. If you want the value of a bean property or the bean itself to be able to get saved and restored , it must implement the Serializable interface.

Code Description : 

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

<f:view>
   <t:document>
      <t:documentHead>
         <meta http-equiv="Content-Type" content="text/html; 
               charset=iso-8859-1">
         <title>t:saveState example</title>
      </t:documentHead>
      <t:documentBody >
         <t:saveState id="state1" value="#{Bean.text1}"/>
         <t:saveState id="state2" value="#{Bean.text2}"/>
         <t:saveState id="state3" value="#{NextBean}"/>
           <h:form>
                <t:outputText value="Title1"/>
                <t:inputText id="it1" value="#{Bean.text1}"/></p>
                <t:outputText value="Title2"/>
                <t:inputText id="it2" value="#{Bean.text2}"/>
           </h:form>
      </t:documentBody>
   </t:document>
</f:view>

Html Source Code :

<html>
  <head>
     <meta http-equiv="Content-Type" content="text/html; 
           charset=iso-8859-1">  
     <title>t:saveState example</title>
  </head>
  <body>
     <form id="_idJsp3" name="_idJsp3" method="post" 
           action="/tomahawk_tags/pages/saveState.jsf" 
           enctype="application/x-www-form-urlencoded">
     Title1
     <input id="_idJsp3:it1" name="_idJsp3:it1" 
           type="text" value="" /></p>
     Title2
     <input id="_idJsp3:it2" name="_idJsp3:it2" 
           type="text" value="" />
     <input type="hidden" name="_idJsp3_SUBMIT" value="1" />
     <input type="hidden" name="javax.faces.ViewState" 
            id="javax.faces.ViewState" value="rO0ABXVyABNbTGphd
mEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAANzcgBHb3JnLmFwYWNoZS5t
eWZhY2VzLmFwcGxpY2F0aW9uLlRyZWVTdHJ1Y3R1cmVNYW5hZ2VyJFRyZWVTdHJ
1Y3RDb21wb25lbnRGWRfYnEr2zwIABFsACV9jaGlsZHJlbnQASltMb3JnL2" />
..............
..............
</form>
</body>
</html>

This tag contains attributes given below :

  • id : This is the value which is used to uniquely identify the component within the closest container like form or subview. The main thing to remember is that its value must be a static value.
  • value : The initial value of the component is set to this attribute. This is the required attribute.