diff --git a/docs/tags/ActionError.html b/docs/tags/ActionError.html index 2eebb0630..521a33f86 100644 --- a/docs/tags/ActionError.html +++ b/docs/tags/ActionError.html @@ -556,6 +556,24 @@ Render action errors if they exists +
-
Instantiates a class that conforms to the JavaBeans specification. This tag has a body which can contain a number of {@link Param} elements to set any mutator methods on that class.
If the id attribute is set on the BeanTag, it will place the instantiated bean into the stack's Context.
Examples:
<-- in freemarker form --> [ww.bean name="org.apache.struts.action2.example.counter.SimpleCounter" id="counter"] [a:param name="foo" value="BAR"/] The value of foo is : [a:property value="foo"/], when inside the bean tag.
[/a:bean] <-- in jsp form --> <a:bean name="org.apache.struts.action2.example.counter.SimpleCounter" id="counter"> <a:param name="foo" value="BAR" /> The value of foot is : <a:property value="foo"/>, when inside the bean tag <br /> </a:bean>
This example instantiates a bean called SimpleCounter and sets the foo property (setFoo('BAR')). The SimpleCounter object is then pushed onto the Valuestack, which means that we can called its accessor methods (getFoo()) with the Property tag and get their values.
In the above example, the id has been set to a value of counter. This means that the SimpleCounter class will be placed into the stack's context. You can access the SimpleCounter class using WW's tag:
<-- jsp form --> <a:property value="#counter" /> <-- freemarker form --> [a:property value="#counter.foo"/]
In the property tag example, the # tells Ognl to search the context for the SimpleCounter class which has an id(key) of counter
+Instantiates a class that conforms to the JavaBeans specification. This tag has a body which can contain a number of {@link Param} elements to set any mutator methods on that class.
If the id attribute is set on the BeanTag, it will place the instantiated bean into the stack's Context.
Examples:
<-- in freemarker form --> [ww.bean name="org.apache.struts2.example.counter.SimpleCounter" id="counter"] [a:param name="foo" value="BAR"/] The value of foo is : [a:property value="foo"/], when inside the bean tag.
[/a:bean] <-- in jsp form --> <a:bean name="org.apache.struts2.example.counter.SimpleCounter" id="counter"> <a:param name="foo" value="BAR" /> The value of foot is : <a:property value="foo"/>, when inside the bean tag <br /> </a:bean>
This example instantiates a bean called SimpleCounter and sets the foo property (setFoo('BAR')). The SimpleCounter object is then pushed onto the Valuestack, which means that we can called its accessor methods (getFoo()) with the Property tag and get their values.
In the above example, the id has been set to a value of counter. This means that the SimpleCounter class will be placed into the stack's context. You can access the SimpleCounter class using WW's tag:
<-- jsp form --> <a:property value="#counter" /> <-- freemarker form --> [a:property value="#counter.foo"/]
In the property tag example, the # tells Ognl to search the context for the SimpleCounter class which has an id(key) of counter
- Renders HTML an input form.
The remote form allows the form to be submitted without the page being refreshed. The results from the form can be inserted into any HTML element on the page. NOTE: The order / logic in determining the posting url of the generated HTML form is as follows:-<a:form ... />+ Renders HTML an input form. The remote form allows the form to be submitted without the page being refreshed. The results from the form can be inserted into any HTML element on the page. NOTE: The order / logic in determining the posting url of the generated HTML form is as follows:-
<a:form ... />
- Renders an custom UI widget using the specified templates. Additional objects can be passed in to the template using the param tags. Objects provided can be retrieve from within the template via $parameters._paramname_.
In the bottom JSP and Velocity samples, two parameters are being passed in to the component. From within the component, they can be accessed as $parameters.get('key1') and $parameters.get('key2'). Velocity also allows you reference them as $parameters.key1 and $parameters.key2. Currently, your custom UI components can be written in Velocity, JSP, or Freemarker, and the correct rendering engine will be found based on file extension. Remember: the value params will always be resolved against the OgnlValueStack so if you mean to pass a string literal to your component, make sure to wrap it in quotes i.e. value="'value1'" otherwise, the the value stack will search for an Object on the stack with a method of getValue1(). (now that i've written this, i'm not entirely sure this is the case. i should verify this manana) ExamplesJSP <a:component template="/my/custom/component.vm"/> or <a:component template="/my/custom/component.vm"> <a:param name="key1" value="value1"/> <a:param name="key2" value="value2"/> </a:component> Velocity #tag( Component "template=/my/custom/component.vm" ) or #bodytag( Component "template=/my/custom/component.vm" ) #param( "key1" "value1" ) #param( "key2" "value2" ) #end+ Renders an custom UI widget using the specified templates. Additional objects can be passed in to the template using the param tags. Freemarker: Objects provided can be retrieve from within the template via $parameters._paramname_. Jsp: Objects provided can be retrieve from within the template via <saf:property value="%{parameters._paramname_}" /> In the bottom JSP and Velocity samples, two parameters are being passed in to the component. From within the component, they can be accessed as:- Freemarker: $parameters.get('key1') and $parameters.get('key2') or $parameters.key1 and $parameters.key2 Jsp: <saf:property value="%{parameters.key1}" /> and <saf:property value="%{'parameters.key2'}" /> or <saf:property value="%{parameters.get('key1')}" /> and <saf:property value="%{parameters.get('key2')}" /> Currently, your custom UI components can be written in Velocity, JSP, or Freemarker, and the correct rendering engine will be found based on file extension. Remember: the value params will always be resolved against the OgnlValueStack so if you mean to pass a string literal to your component, make sure to wrap it in quotes i.e. value="'value1'" otherwise, the the value stack will search for an Object on the stack with a method of getValue1(). (now that i've written this, i'm not entirely sure this is the case. i should verify this manana) Examples
JSP <a:component template="/my/custom/component.vm"/> or <a:component template="/my/custom/component.vm"> <a:param name="key1" value="value1"/> <a:param name="key2" value="value2"/> </a:component> Velocity #safcomponent( "template=/my/custom/component.vm" ) or #safcomponent( "template=/my/custom/component.vm" ) #safparam( "name=key1" "value=value1" ) #safparam( "name=key2" "value=value2" ) #end Freemarker <@saf.component template="/my/custom/component.ftl" /> or <@saf.component template="/my/custom/component.ftl"> <@saf.param name="key1" value="%{'value1'}" /> <@saf.param name="key2" value="%{'value2'}" /> </@saf.component> NOTE: If Jsp is used as the template, the jsp template itself must lie within the webapp itself and not the classpath. Unlike Freemarker or Velocity, JSP template could not be picked up from the classpath.
-
Iterator will iterate over a value. An iterable value can be either of: java.util.Collection, java.util.Iterator, java.util.Enumeration, java.util.Map, array.
The following example retrieves the value of the getDays() method of the current object on the value stack and uses it to iterate over. The <a:property/> tag prints out the current value of the iterator.
<a:iterator value="days"> <p>day is: <a:property/></p> </a:iterator>
The following example uses a {@link Bean} tag and places it into the ActionContext. The iterator tag will retrieve that object from the ActionContext and then calls its getDays() method as above. The status attribute is also used to create a {@link IteratorStatus} object, which in this example, its odd() method is used to alternate row colours:
<a:bean name="org.apache.struts.action2.example.IteratorExample" id="it"> <a:param name="day" value="'foo'"/> <a:param name="day" value="'bar'"/> </a:bean> <table border="0" cellspacing="0" cellpadding="1"> <tr> <th>Days of the week</th> </tr> <a:iterator value="#it.days" status="rowstatus"> <tr> <a:if test="#rowstatus.odd == true"> <td style="background: grey"><a:property/></td> </a:if> <a:else> <td><a:property/></td> </a:else> </tr> </a:iterator> </table>
The next example will further demonstrate the use of the status attribute, using a DAO obtained from the action class through OGNL, iterating over groups and their users (in a security context). The last() method indicates if the current object is the last available in the iteration, and if not, we need to seperate the users using a comma:
<saf:iterator value="groupDao.groups" status="groupStatus"> <tr class="<saf:if test="#groupStatus.odd == true ">odd</saf:if><saf:else>even</saf:else>"> <td><saf:property value="name" /></td> <td><saf:property value="description" /></td> <td> <saf:iterator value="users" status="userStatus"> <saf:property value="fullName" /><saf:if test="!#userStatus.last">,</saf:if> </saf:iterator> </td> </tr> </saf:iterator>
The next example iterates over a an action collection and passes every iterator value to another action. The trick here lies in the use of the '[0]' operator. It takes the current iterator value and passes it on to the edit action. Using the '[0]' operator has the same effect as using >a:property />. (The latter, however, does not work from inside the param tag).
<a:action name="entries" id="entries"/> <a:iterator value="#entries.entries" > <a:property value="name" /> <a:property /> <a:push value="..."> <a:action name="edit" id="edit" > <a:param name="entry" value="[0]" /> </a:action> </push> </a:iterator>To simulate a simple loop with iterator tag, the following could be done. It does the loop 5 times.
<a:iterator status="stat" value="{1,2,3,4,5}" > <!-- grab the index (start with 0 ... ) --> <a:property value="#stat.index" /> <!-- grab the top of the stack which should be the --> <!-- current iteration value (0, 1, ... 5) --> <a:property value="top" /> </a:iterator>
+ Iterator will iterate over a value. An iterable value can be either of: java.util.Collection, java.util.Iterator, java.util.Enumeration, java.util.Map, array.
The following example retrieves the value of the getDays() method of the current object on the value stack and uses it to iterate over. The <a:property/> tag prints out the current value of the iterator.
<a:iterator value="days"> <p>day is: <a:property/></p> </a:iterator>
The following example uses a {@link Bean} tag and places it into the ActionContext. The iterator tag will retrieve that object from the ActionContext and then calls its getDays() method as above. The status attribute is also used to create a {@link IteratorStatus} object, which in this example, its odd() method is used to alternate row colours:
<a:bean name="org.apache.struts2.example.IteratorExample" id="it"> <a:param name="day" value="'foo'"/> <a:param name="day" value="'bar'"/> </a:bean> <table border="0" cellspacing="0" cellpadding="1"> <tr> <th>Days of the week</th> </tr> <a:iterator value="#it.days" status="rowstatus"> <tr> <a:if test="#rowstatus.odd == true"> <td style="background: grey"><a:property/></td> </a:if> <a:else> <td><a:property/></td> </a:else> </tr> </a:iterator> </table>
The next example will further demonstrate the use of the status attribute, using a DAO obtained from the action class through OGNL, iterating over groups and their users (in a security context). The last() method indicates if the current object is the last available in the iteration, and if not, we need to seperate the users using a comma:
<saf:iterator value="groupDao.groups" status="groupStatus"> <tr class="<saf:if test="#groupStatus.odd == true ">odd</saf:if><saf:else>even</saf:else>"> <td><saf:property value="name" /></td> <td><saf:property value="description" /></td> <td> <saf:iterator value="users" status="userStatus"> <saf:property value="fullName" /><saf:if test="!#userStatus.last">,</saf:if> </saf:iterator> </td> </tr> </saf:iterator>
The next example iterates over a an action collection and passes every iterator value to another action. The trick here lies in the use of the '[0]' operator. It takes the current iterator value and passes it on to the edit action. Using the '[0]' operator has the same effect as using >a:property />. (The latter, however, does not work from inside the param tag).
<a:action name="entries" id="entries"/> <a:iterator value="#entries.entries" > <a:property value="name" /> <a:property /> <a:push value="..."> <a:action name="edit" id="edit" > <a:param name="entry" value="[0]" /> </a:action> </push> </a:iterator>To simulate a simple loop with iterator tag, the following could be done. It does the loop 5 times.
<a:iterator status="stat" value="{1,2,3,4,5}" > <!-- grab the index (start with 0 ... ) --> <a:property value="#stat.index" /> <!-- grab the top of the stack which should be the --> <!-- current iteration value (0, 1, ... 5) --> <a:property value="top" /> </a:iterator>
+ +Renders a Select Tag's OptGroup Tag + +
+ ++ Create a optgroup component which needs to resides within a select tag.
This component is to be used within a Select component. <ww:select label="My Selection" name="mySelection" value="%{'POPEYE'}" list="%{#{'SUPERMAN':'Superman', 'SPIDERMAN':'spiderman'}}"> <ww:optgroup label="Adult" list="%{#{'SOUTH_PARK':'South Park'}}" /> <ww:optgroup label="Japanese" list="%{#{'POKEMON':'pokemon','DIGIMON':'digimon','SAILORMOON':'Sailormoon'}}" /> </ww:select>
+
+
++ + +
Name |
+Required |
+Default |
+Type |
+Description |
+
+
|---|---|---|---|---|
| label | + + +false | + + ++ + + | Object/String | + + +Set the label attribute. | + +
| disabled | + + +false | + + ++ + + | Object/String | + + +Set the disable attribute. | + +
| list | + + +false | + + ++ + + | Object/String | + + +Set the list attribute. | + +
| listKey | + + +false | + + ++ + + | Object/String | + + +Set the listKey attribute. | + +
| listValue | + + +false | + + ++ + + | Object/String | + + +Set the listValue attribute. | + +
| id | + + +false | + + ++ + + | Object/String | + + +id for referencing element. For UI and form tags it will be used as HTML id attribute | + +
+
- Create a Rich Text Editor based on FCK editor (www.fckeditor.net).
<a:richtexteditor toolbarCanCollapse="false" width="700" label="Description 1" name="description1" value="Some Content I keyed In In The Tag Itself" />It is possible to have a rich text editor do server side browsing when for example the image button is clicked. To integrate this functionality with Struts Action Framework, one need to defined the following action definition typically in xwork.xml
<package name="richtexteditor-browse" extends="struts-default" namespace="/struts/richtexteditor/editor/filemanager/browser/default/connectors/jsp"> <action name="connector" class="org.apache.struts.action2.components.DefaultRichtexteditorConnector" method="browse"> <result name="getFolders" type="richtexteditorGetFolders" /> <result name="getFoldersAndFiles" type="richtexteditorGetFoldersAndFiles" /> <result name="createFolder" type="richtexteditorCreateFolder" /> <result name="fileUpload" type="richtexteditorFileUpload" /> </action> </package>By default whenever a browse command is triggered (eg. by clicking on the 'image' button and then 'browse server' button, the url '/struts/static/richtexteditor/editor/filemanager/browser/default/browser.html?&Type=Image&Connector=connectors/jsp/connector.action'. The page browser.html which comes with FCK Editor will trigger the url '/struts/richtexteditor/editor/filemanager/browser/default/connectors/jsp/connector.action' which will caused the Struts Action Framework's DefaultRichtexteditorConnector to be executed. The trigerring url could be changed by altering the 'imageBrowseURL'. There 3 types of such related url, namely 'imageBrowseURL', 'linkBrowseURL' and 'flashBrowseURL'. It is recomended that the default one being used. One could change the Connector parameter instead. For example
/struts/static/richtexteditor/editor/filemanager/browser/default/browser.html? &Type=Image&Connector=connectors/jsp/connector.actioncould be changed to
/struts/static/richtexteditor/editor/filemanager/browser/default/browser.html? &Type=Image&Connector=myLittlePath/myConnector.actionIn this case the action will need to have a namespace of '/struts/richtexteditor/editor/filemanager/browser/default/myLittlePath' and action name of 'myConnector' By default the action method that needs to be defined in xwork.xml needs to be 'browse'. If this needs to be something else say, myBrowse, the following could be used
public String myBrowse() { browse(); } It is possible for the richtexteditor to do server side uploading as well. For example when clicking on the 'Image' button and then the 'Upload' tab and then selecting a file from client local machine and the clicking 'Send it to the server'. To integrate this functionality with Struts Action Framework, one need to defined the following action definition typically in xwork.xml <package name="richtexteditor-upload" extends="struts-default" namespace="/struts/richtexteditor/editor/filemanager/upload"> <action name="uploader" class="org.apache.struts.action2.components.DefaultRichtexteditorConnector" method="upload"> <result name="richtexteditorFileUpload" /> </action> </package>By default whenever an upload command is triggered, a '/struts/static/richtexteditor/editor/filemanager/upload/uploader.action?Type=Image' will be issued. This could be changed by setting the imageUploadURL attribute of the tag. When this link is issued, the Struts Action Framework action will get executed. There's 3 such related upload url namely, 'imageUploadURL', 'linkUploadURL' and 'flashUploadURL'. It is recomended that the default one being used. However one could change the url, but need to include the Type parameter. For example
/struts/static/richtexteditor/editor/filemanager/upload/uploader.action?Type=Imagecould be changed to
/struts/static/richtexteditor/editor/filemanager/upload/aDifferentUploader.action?Type=ImageIn this case the action will need to have a namespace of '/struts/static/richtexteditor/editor/filemanager/upload' and action name of 'aDifferentUploader' By default the action method that needs to be defined in xwork.xml needs to be 'upload'. If this needs to be something else say, myUpload, the following could be used
public String myUpload() { upload(); } The Struts Action Framework action that handles the server-side browsing and uploading needs to extends from AbstractRichtexteditorConnector. There are four abstract methods need to be implemented, namely protected abstract String calculateServerPath(String serverPath, String folderPath, String type) throws Exception; protected abstract Folder[] getFolders(String virtualFolderPath, String type) throws Exception; protected abstract FoldersAndFiles getFoldersAndFiles(String virtualFolderPath, String type) throws Exception; protected abstract CreateFolderResult createFolder(String virtualFolderPath, String type, String newFolderName) throws Exception; protected abstract FileUploadResult fileUpload(String virtualFolderPath, String type, String filename, String contentType, java.io.File newFile) throws Exception; protected abstract void unknownCommand(String command, String virtualFolderPath, String type, String filename, String contentType, java.io.File newFile) throws Exception;+ Create a Rich Text Editor based on FCK editor (www.fckeditor.net).
<a:richtexteditor toolbarCanCollapse="false" width="700" label="Description 1" name="description1" value="Some Content I keyed In In The Tag Itself" />It is possible to have a rich text editor do server side browsing when for example the image button is clicked. To integrate this functionality with Struts Action Framework, one need to defined the following action definition typically in xwork.xml
<package name="richtexteditor-browse" extends="struts-default" namespace="/struts/richtexteditor/editor/filemanager/browser/default/connectors/jsp"> <action name="connector" class="org.apache.struts2.components.DefaultRichtexteditorConnector" method="browse"> <result name="getFolders" type="richtexteditorGetFolders" /> <result name="getFoldersAndFiles" type="richtexteditorGetFoldersAndFiles" /> <result name="createFolder" type="richtexteditorCreateFolder" /> <result name="fileUpload" type="richtexteditorFileUpload" /> </action> </package>By default whenever a browse command is triggered (eg. by clicking on the 'image' button and then 'browse server' button, the url '/struts/static/richtexteditor/editor/filemanager/browser/default/browser.html?&Type=Image&Connector=connectors/jsp/connector.action'. The page browser.html which comes with FCK Editor will trigger the url '/struts/richtexteditor/editor/filemanager/browser/default/connectors/jsp/connector.action' which will caused the Struts Action Framework's DefaultRichtexteditorConnector to be executed. The trigerring url could be changed by altering the 'imageBrowseURL'. There 3 types of such related url, namely 'imageBrowseURL', 'linkBrowseURL' and 'flashBrowseURL'. It is recomended that the default one being used. One could change the Connector parameter instead. For example
/struts/static/richtexteditor/editor/filemanager/browser/default/browser.html? &Type=Image&Connector=connectors/jsp/connector.actioncould be changed to
/struts/static/richtexteditor/editor/filemanager/browser/default/browser.html? &Type=Image&Connector=myLittlePath/myConnector.actionIn this case the action will need to have a namespace of '/struts/richtexteditor/editor/filemanager/browser/default/myLittlePath' and action name of 'myConnector' By default the action method that needs to be defined in xwork.xml needs to be 'browse'. If this needs to be something else say, myBrowse, the following could be used
public String myBrowse() { browse(); } It is possible for the richtexteditor to do server side uploading as well. For example when clicking on the 'Image' button and then the 'Upload' tab and then selecting a file from client local machine and the clicking 'Send it to the server'. To integrate this functionality with Struts Action Framework, one need to defined the following action definition typically in xwork.xml <package name="richtexteditor-upload" extends="struts-default" namespace="/struts/richtexteditor/editor/filemanager/upload"> <action name="uploader" class="org.apache.struts2.components.DefaultRichtexteditorConnector" method="upload"> <result name="richtexteditorFileUpload" /> </action> </package>By default whenever an upload command is triggered, a '/struts/static/richtexteditor/editor/filemanager/upload/uploader.action?Type=Image' will be issued. This could be changed by setting the imageUploadURL attribute of the tag. When this link is issued, the Struts Action Framework action will get executed. There's 3 such related upload url namely, 'imageUploadURL', 'linkUploadURL' and 'flashUploadURL'. It is recomended that the default one being used. However one could change the url, but need to include the Type parameter. For example
/struts/static/richtexteditor/editor/filemanager/upload/uploader.action?Type=Imagecould be changed to
/struts/static/richtexteditor/editor/filemanager/upload/aDifferentUploader.action?Type=ImageIn this case the action will need to have a namespace of '/struts/static/richtexteditor/editor/filemanager/upload' and action name of 'aDifferentUploader' By default the action method that needs to be defined in xwork.xml needs to be 'upload'. If this needs to be something else say, myUpload, the following could be used
public String myUpload() { upload(); } The Struts Action Framework action that handles the server-side browsing and uploading needs to extends from AbstractRichtexteditorConnector. There are four abstract methods need to be implemented, namely protected abstract String calculateServerPath(String serverPath, String folderPath, String type) throws Exception; protected abstract Folder[] getFolders(String virtualFolderPath, String type) throws Exception; protected abstract FoldersAndFiles getFoldersAndFiles(String virtualFolderPath, String type) throws Exception; protected abstract CreateFolderResult createFolder(String virtualFolderPath, String type, String newFolderName) throws Exception; protected abstract FileUploadResult fileUpload(String virtualFolderPath, String type, String filename, String contentType, java.io.File newFile) throws Exception; protected abstract void unknownCommand(String command, String virtualFolderPath, String type, String filename, String contentType, java.io.File newFile) throws Exception;
- Renders a tree widget with AJAX support.
Examples<-- statically --< <saf:tree rootNode="..." /> or <-- dynamically --> <saf:tree id="..." label="..."> <saf:treenode id="..." label="..." /> <saf:treenode id="..." label="..."> <saf:treenode id="..." label="..." /> <saf:treenode id="..." label="..." /> &;lt;/saf:treenode> <saf:treenode id="..." label="..." /> </saf:tree>+ Renders a tree widget with AJAX support. The id attribute is normally specified, such that it could be looked up using javascript if necessary. Examples
<-- statically --> <saf:tree id="..." label="..."> <saf:treenode id="..." label="..." /> <saf:treenode id="..." label="..."> <saf:treenode id="..." label="..." /> <saf:treenode id="..." label="..." /> &;lt;/saf:treenode> <saf:treenode id="..." label="..." /> </saf:tree> <-- dynamically --> <saf:tree id="..." rootNode="..." nodeIdProperty="..." nodeTitleProperty="..." childCollectionProperty="..." />
- Renders a tree node within a tree widget with AJAX support.
Examples<treenode .../>+ Renders a tree node within a tree widget with AJAX support. Either of the following combinations should be used depending on if the tree is to be constrcted dynamically or statically. Dynamically
<-- statically --> <ww:tree id="..." label="..."> <ww:treenode id="..." label="..." /> <ww:treenode id="..." label="..."> <ww:treenode id="..." label="..." /> <ww:treenode id="..." label="..." /> &;lt;/ww:treenode> <ww:treenode id="..." label="..." /> </ww:tree> <-- dynamically --> <ww:tree id="..." rootNode="..." nodeIdProperty="..." nodeTitleProperty="..." childCollectionProperty="..." />
| -<updownselect /> - | -- -Render a up down select element - - | -
| -<form /> - | -- -Renders an input form - - | -
| -<component /> - | -- -Render a custom ui widget - - | -
| -<checkbox /> - | -- -Render a checkbox input field - - | -
| -<iterator /> - | -- -Iterate over a iterable value - - | -
| -<file /> - | -- -Render a file input field - - | -
| -<set /> - | -- -Assigns a value to a variable in a specified scope - - | -
| -<param /> - | -- -Parametrize other tags - - | -
| -<tree /> - | -- -Render a tree widget. - - | -
| <doubleselect /> @@ -119,259 +20,6 @@ Renders two HTML select elements with second one changing displayed values depen | |
| -<else /> - | -- -Else tag - - | -
| -<richtexteditor /> - | -- -Render a rich text editor element - - | -
| -<elseif /> - | -- -Elseif tag - - | -
| -<submit /> - | -- -Render a submit button - - | -
| -<push /> - | -- -Push value on stack for simplified usage. - - | -
| -<property /> - | -- -Print out expression which evaluates against the stack - - | -
| -<date /> - | -- -Render a formatted date. - - | -
| -<url /> - | -- -This tag is used to create a URL - - | -
| -<hidden /> - | -- -Render a hidden input field - - | -
| -<token /> - | -- -Stop double-submission of forms - - | -
| -<fielderror /> - | -- -Render field error (all or partial depending on param tag nested)if they exists - - | -
| -<i18n /> - | -- -Get a resource bundle and place it on the value stack - - | -
| -<actionmessage /> - | -- -Render action messages if they exists - - | -
| -<append /> - | -- -Append the values of a list of iterators to one iterator - - | -
| -<div /> - | -- -Render HTML div providing content from remote call via AJAX - - | -
| -<action /> - | -- -Execute an action from within a view - - | -
| -<text /> - | -- -Render a I18n text message. - - | -
| -<tabbedPanel /> - | -- -Render a tabbedPanel widget. - - | -
| -<password /> - | -- -Render an HTML input tag of type password - - | -
| -<optiontransferselect /> - | -- -Renders an input form - - | -
| -<label /> - | -- -Render a label that displays read-only information - - | -
| -<merge /> - | -- -Merge the values of a list of iterators into one iterator - - | -
| -<combobox /> - | -- -Widget that fills a text box from a select - - | -
| <bean /> @@ -385,22 +33,44 @@ Instantiate a JavaBean and place it in the context. | |
| -<reset /> +<label /> | -Render a reset button +Render a label that displays read-only information |
| -<checkboxlist /> +<richtexteditor /> | -Render a list of checkboxes +Render a rich text editor element + + | +
| +<tabbedPanel /> + | ++ +Render a tabbedPanel widget. + + | +
| +<else /> + | ++ +Else tag |
| -<actionerror /> +<date /> | -Render action errors if they exists - - | -
| -<treenode /> - | -- -Render a tree node within a tree widget. - - | -
| -<include /> - | -- -Include a servlet's output (result of servlet or a JSP page) - - | -
| -<datepicker /> - | -- -Render datepicker +Render a formatted date. |
| -<debug /> +<password /> | -Render debug tag +Render an HTML input tag of type password |
| -<textarea /> +<reset /> | -Render HTML textarea tag. +Render a reset button |
| -<radio /> +<treenode /> | -Renders a radio button input field +Render a tree node within a tree widget. |
| -<a /> +<url /> | -Render a HTML href element that when clicked calls a URL via remote XMLHttpRequest +This tag is used to create a URL + + | +
| +<include /> + | ++ +Include a servlet's output (result of servlet or a JSP page) + + | +
| +<token /> + | ++ +Stop double-submission of forms + + | +
| +<text /> + | ++ +Render a I18n text message. + + | +
| +<datepicker /> + | ++ +Render datepicker + + | +
| +<div /> + | ++ +Render HTML div providing content from remote call via AJAX + + | +
| +<set /> + | ++ +Assigns a value to a variable in a specified scope + + | +
| +<checkbox /> + | ++ +Render a checkbox input field + + | +
| +<i18n /> + | ++ +Get a resource bundle and place it on the value stack + + | +
| +<submit /> + | ++ +Render a submit button + + | +
| +<fielderror /> + | ++ +Render field error (all or partial depending on param tag nested)if they exists + + | +
| +<file /> + | ++ +Render a file input field + + | +
| +<append /> + | ++ +Append the values of a list of iterators to one iterator + + | +
| +<component /> + | ++ +Render a custom ui widget + + | +
| +<push /> + | ++ +Push value on stack for simplified usage. + + | +
| +<optgroup /> + | ++ +Renders a Select Tag's OptGroup Tag |
| +<tree /> + | ++ +Render a tree widget. + + | +
| +<textarea /> + | ++ +Render HTML textarea tag. + + | +
| +<param /> + | ++ +Parametrize other tags + + | +
| +<actionmessage /> + | ++ +Render action messages if they exists + + | +
| <select /> @@ -539,11 +385,11 @@ Render a select element | |
| -<if /> +<action /> | -If tag +Execute an action from within a view |
| +<checkboxlist /> + | ++ +Render a list of checkboxes + + | +
| +<form /> + | ++ +Renders an input form + + | +
| +<actionerror /> + | ++ +Render action errors if they exists + + | +
| +<combobox /> + | ++ +Widget that fills a text box from a select + + | +
| +<optiontransferselect /> + | ++ +Renders an input form + + | +
| +<property /> + | ++ +Print out expression which evaluates against the stack + + | +
| +<hidden /> + | ++ +Render a hidden input field + + | +
| +<iterator /> + | ++ +Iterate over a iterable value + + | +
| +<merge /> + | ++ +Merge the values of a list of iterators into one iterator + + | +
| +<elseif /> + | ++ +Elseif tag + + | +
| +<radio /> + | ++ +Renders a radio button input field + + | +
| +<updownselect /> + | ++ +Render a up down select element + + | +
| +<a /> + | ++ +Render a HTML href element that when clicked calls a URL via remote XMLHttpRequest + + | +
| +<if /> + | ++ +If tag + + | +