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 + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/ActionMessage.html b/docs/tags/ActionMessage.html index f860565ac..7aed41ea2 100644 --- a/docs/tags/ActionMessage.html +++ b/docs/tags/ActionMessage.html @@ -556,6 +556,24 @@ Render action messages if they exists + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Anchor.html b/docs/tags/Anchor.html index 7d1862e3f..8b9057274 100644 --- a/docs/tags/Anchor.html +++ b/docs/tags/Anchor.html @@ -700,6 +700,24 @@ Render a HTML href element that when clicked calls a URL via remote XMLHttpReque + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Bean.html b/docs/tags/Bean.html index 3ad21c262..b70ec41af 100644 --- a/docs/tags/Bean.html +++ b/docs/tags/Bean.html @@ -16,7 +16,7 @@ Instantiate a JavaBean and place it in the context.

-

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

Attributes

diff --git a/docs/tags/Checkbox.html b/docs/tags/Checkbox.html index b9fcebc6b..426be2f14 100644 --- a/docs/tags/Checkbox.html +++ b/docs/tags/Checkbox.html @@ -574,6 +574,24 @@ Render a checkbox input field + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/CheckboxList.html b/docs/tags/CheckboxList.html index 1553bba38..94533e0ce 100644 --- a/docs/tags/CheckboxList.html +++ b/docs/tags/CheckboxList.html @@ -610,6 +610,24 @@ Render a list of checkboxes + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/ComboBox.html b/docs/tags/ComboBox.html index 045f63bb9..96935e2ec 100644 --- a/docs/tags/ComboBox.html +++ b/docs/tags/ComboBox.html @@ -736,6 +736,24 @@ Widget that fills a text box from a select + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/DatePicker.html b/docs/tags/DatePicker.html index 9c3af326e..81db6fc1c 100644 --- a/docs/tags/DatePicker.html +++ b/docs/tags/DatePicker.html @@ -700,6 +700,24 @@ Render datepicker + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Div.html b/docs/tags/Div.html index 60ced5995..11fbfa1f7 100644 --- a/docs/tags/Div.html +++ b/docs/tags/Div.html @@ -718,6 +718,24 @@ Render HTML div providing content from remote call via AJAX + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/DoubleSelect.html b/docs/tags/DoubleSelect.html index e3da8674f..af4baffd2 100644 --- a/docs/tags/DoubleSelect.html +++ b/docs/tags/DoubleSelect.html @@ -664,6 +664,24 @@ Renders two HTML select elements with second one changing displayed values depen + + +doubleAccesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute. + + + list @@ -1240,6 +1258,24 @@ Renders two HTML select elements with second one changing displayed values depen + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/FieldError.html b/docs/tags/FieldError.html index 86d585819..ce7c4f8af 100644 --- a/docs/tags/FieldError.html +++ b/docs/tags/FieldError.html @@ -556,6 +556,24 @@ Render field error (all or partial depending on param tag nested)if they exists + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/File.html b/docs/tags/File.html index ec15e3102..92541af3a 100644 --- a/docs/tags/File.html +++ b/docs/tags/File.html @@ -592,6 +592,24 @@ Render a file input field + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Form.html b/docs/tags/Form.html index 4515190b9..f6494a047 100644 --- a/docs/tags/Form.html +++ b/docs/tags/Form.html @@ -16,7 +16,7 @@ Renders an input 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:-

  1. If the action attribute is not specified, then the current request will be used to determine the posting url
  2. If the action is given, SAF will try to obtain an ActionConfig. This will be successfull if the action attribute is a valid action alias defined xwork.xml.
  3. If the action is given and is not an action alias defined in xwork.xmlm SAF will used the action attribute as if it is the posting url, separting the namespace from it and using UrlHelper to generate the final url.

Examples

  <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:-

  1. If the action attribute is not specified, then the current request will be used to determine the posting url
  2. If the action is given, SAF will try to obtain an ActionConfig. This will be successfull if the action attribute is a valid action alias defined xwork.xml.
  3. If the action is given and is not an action alias defined in xwork.xmlm SAF will used the action attribute as if it is the posting url, separting the namespace from it and using UrlHelper to generate the final url.

Examples

  

<a:form ... />

Attributes

@@ -754,6 +754,24 @@ Renders an input form + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/GenericUIBean.html b/docs/tags/GenericUIBean.html index f7ec172af..7c9c49530 100644 --- a/docs/tags/GenericUIBean.html +++ b/docs/tags/GenericUIBean.html @@ -16,7 +16,7 @@ Render a custom ui widget

- 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)

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 #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.

Attributes

@@ -556,6 +556,24 @@ Render a custom ui widget + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Head.html b/docs/tags/Head.html index a0b6e3f31..8a3307a1c 100644 --- a/docs/tags/Head.html +++ b/docs/tags/Head.html @@ -592,6 +592,24 @@ Render a chunk of HEAD for your HTML file + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Hidden.html b/docs/tags/Hidden.html index 862112541..2d72308d2 100644 --- a/docs/tags/Hidden.html +++ b/docs/tags/Hidden.html @@ -556,6 +556,24 @@ Render a hidden input field + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/IteratorComponent.html b/docs/tags/IteratorComponent.html index 7855757d4..f5eecbd7e 100644 --- a/docs/tags/IteratorComponent.html +++ b/docs/tags/IteratorComponent.html @@ -16,7 +16,7 @@ Iterate over a iterable value

-

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>  

Attributes

diff --git a/docs/tags/Label.html b/docs/tags/Label.html index 0b894475d..7687289c6 100644 --- a/docs/tags/Label.html +++ b/docs/tags/Label.html @@ -574,6 +574,24 @@ Render a label that displays read-only information + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/OptGroup.html b/docs/tags/OptGroup.html new file mode 100644 index 000000000..cb8ba896f --- /dev/null +++ b/docs/tags/OptGroup.html @@ -0,0 +1,154 @@ + + + +<a2:optgroup /> + + + + +

Tag Name: <a2:optgroup />

+ +

Description

+

+ +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>  
+

+ +

Attributes

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Required

Default

Type

Description

labelfalse Object/StringSet the label attribute.
disabledfalse Object/StringSet the disable attribute.
listfalse Object/StringSet the list attribute.
listKeyfalse Object/StringSet the listKey attribute.
listValuefalse Object/StringSet the listValue attribute.
idfalse Object/Stringid for referencing element. For UI and form tags it will be used as HTML id attribute
+ + +

+

+

Back to Taglib Index
+

+ + + diff --git a/docs/tags/OptionTransferSelect.html b/docs/tags/OptionTransferSelect.html index 35e270995..d4ed074c5 100644 --- a/docs/tags/OptionTransferSelect.html +++ b/docs/tags/OptionTransferSelect.html @@ -916,6 +916,24 @@ Renders an input form + + +doubleAccesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute. + + + list @@ -1492,6 +1510,24 @@ Renders an input form + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Panel.html b/docs/tags/Panel.html index d3ce7a8e1..ff7a2ccb2 100644 --- a/docs/tags/Panel.html +++ b/docs/tags/Panel.html @@ -772,6 +772,24 @@ Render a panel for tabbedPanel + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Password.html b/docs/tags/Password.html index c33ee9fac..6a3a1b373 100644 --- a/docs/tags/Password.html +++ b/docs/tags/Password.html @@ -664,6 +664,24 @@ Render an HTML input tag of type password + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Radio.html b/docs/tags/Radio.html index 7acf6783e..c174df677 100644 --- a/docs/tags/Radio.html +++ b/docs/tags/Radio.html @@ -610,6 +610,24 @@ Renders a radio button input field + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Reset.html b/docs/tags/Reset.html index c7c8705cc..2896c2363 100644 --- a/docs/tags/Reset.html +++ b/docs/tags/Reset.html @@ -628,6 +628,24 @@ Render a reset button + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/RichTextEditor.html b/docs/tags/RichTextEditor.html index 8c994ea1d..a74daf99d 100644 --- a/docs/tags/RichTextEditor.html +++ b/docs/tags/RichTextEditor.html @@ -16,7 +16,7 @@ Render a rich text editor element

- 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.action 
could be changed to
 /struts/static/richtexteditor/editor/filemanager/browser/default/browser.html? &Type=Image&Connector=myLittlePath/myConnector.action 
In 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=Image 
could be changed to
 /struts/static/richtexteditor/editor/filemanager/upload/aDifferentUploader.action?Type=Image 
In 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.action 
could be changed to
 /struts/static/richtexteditor/editor/filemanager/browser/default/browser.html? &Type=Image&Connector=myLittlePath/myConnector.action 
In 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=Image 
could be changed to
 /struts/static/richtexteditor/editor/filemanager/upload/aDifferentUploader.action?Type=Image 
In 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; 

Attributes

@@ -1564,6 +1564,24 @@ Render a rich text editor element + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Select.html b/docs/tags/Select.html index fc022c153..8a0ef50e2 100644 --- a/docs/tags/Select.html +++ b/docs/tags/Select.html @@ -700,6 +700,24 @@ Render a select element + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Submit.html b/docs/tags/Submit.html index 4306a34c0..a814ce2d2 100644 --- a/docs/tags/Submit.html +++ b/docs/tags/Submit.html @@ -736,6 +736,24 @@ Render a submit button + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/TabbedPanel.html b/docs/tags/TabbedPanel.html index 8dc1041a0..1906533b9 100644 --- a/docs/tags/TabbedPanel.html +++ b/docs/tags/TabbedPanel.html @@ -592,6 +592,24 @@ Render a tabbedPanel widget. + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/TextArea.html b/docs/tags/TextArea.html index b20127551..c13e2eef3 100644 --- a/docs/tags/TextArea.html +++ b/docs/tags/TextArea.html @@ -628,6 +628,24 @@ Render HTML textarea tag. + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/TextField.html b/docs/tags/TextField.html index e375065bb..0c3216156 100644 --- a/docs/tags/TextField.html +++ b/docs/tags/TextField.html @@ -628,6 +628,24 @@ Render an HTML input field of type text + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Token.html b/docs/tags/Token.html index f91cf0c4e..a7a44be93 100644 --- a/docs/tags/Token.html +++ b/docs/tags/Token.html @@ -556,6 +556,24 @@ Stop double-submission of forms + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/Tree.html b/docs/tags/Tree.html index 2c3e9a14c..b0a580b66 100644 --- a/docs/tags/Tree.html +++ b/docs/tags/Tree.html @@ -16,7 +16,7 @@ Render a tree widget.

- 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="..." />  

Attributes

@@ -988,6 +988,24 @@ Render a tree widget. + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/TreeNode.html b/docs/tags/TreeNode.html index b780d0c50..e158096b5 100644 --- a/docs/tags/TreeNode.html +++ b/docs/tags/TreeNode.html @@ -16,7 +16,7 @@ Render a tree node within a tree widget.

- 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

Examples

  <-- 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="..." />  

Attributes

@@ -574,6 +574,24 @@ Render a tree node within a tree widget. + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/UpDownSelect.html b/docs/tags/UpDownSelect.html index 8c13fff04..0c8a77953 100644 --- a/docs/tags/UpDownSelect.html +++ b/docs/tags/UpDownSelect.html @@ -808,6 +808,24 @@ Render a up down select element + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/WebTable.html b/docs/tags/WebTable.html index 729525bd0..4c2f587b1 100644 --- a/docs/tags/WebTable.html +++ b/docs/tags/WebTable.html @@ -102,7 +102,7 @@ Instantiate a JavaBean and place it in the context. Boolean -Whether the table should be sortable. Requires that model implements org.apache.struts.action2.components.table.SortableTableModel if set to true. +Whether the table should be sortable. Requires that model implements org.apache.struts2.components.table.SortableTableModel if set to true. @@ -628,6 +628,24 @@ Instantiate a JavaBean and place it in the context. + + +accesskey + + +false + + +  + + +Object/String + + +Set the html accesskey attribute on rendered html element + + + tooltip diff --git a/docs/tags/index.html b/docs/tags/index.html index 44cc5a352..b30e2900e 100644 --- a/docs/tags/index.html +++ b/docs/tags/index.html @@ -9,105 +9,6 @@

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + @@ -418,44 +88,11 @@ Render an HTML input field of type text - - - - - - - - - - - - - - - @@ -473,44 +110,209 @@ Render a chunk of HEAD for your HTML file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -526,6 +328,50 @@ Instantiate a JavaBean and place it in the context. + + + + + + + + + + + + + + + + + + + + @@ -559,6 +405,160 @@ Render a panel for tabbedPanel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-<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 + +