The path must be relative to the origin XML (may not start with a '/').]]>
  • get values,
  • set values (when submitting a form for instance),
  • call methods (to react to application events).The underlying engine is fully compatible with Java Unified Expression Language (see http://java.sun.com/products/jsp/reference/techart/unifiedEL.html),except that expressions are compiled, and strongly-typed (no weak-type conversion).]]> A displayable item is made of:
    • an (internal) value,
    • a (displayable) text,
    • an (optional) icon.
    ]]>
    An Action may trigger application code, and in any cases it must cause a navigation to occur (to a defined view point).]]> A tree item is made of:
    • a (displayable) text,
    • an (optional) icon.
    ]]>
    The path is relative to the WEB-INF directory and has to start with a '/' (ex: /pages/MyPage).]]> Defines the execution context associated to one or several pages.
    Such a context is defined by:
    • parent context (optional): any page context this one extends,
    • authorization rule (optional): a rule that is checked whenever a user is trying to access this context,
    • input parameters (optional): url parameters required to load the context,
    • local beans (optional): beans used locally in this page,
    • on load actions (optional): set of actions to trigger when this context is loaded (generaly beans initilization),
    • on quit actions (optional): set of actions to trigger when this context is leaved.
    Within this context, the url consistency is maintained (required input parameters are checked when entering this context, and are always reentered while staying in this context), ensuring that any url may be bookmarked, exchanged and restored.]]>
    Allows to render several sub-menus.]]> Supported contextual beans: $submenu (if expression 'IterateOn' is set).]]> Supported contextual beans: $submenu (if expression 'IterateOn' is set).]]> The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $submenu (if expression 'IterateOn' is set).]]>
    Supported contextual beans: $submenu (if expression 'IterateOn' is set).]]> Supported contextual beans: $submenu (if expression 'IterateOn' is set).
    Default: true]]>
    Supported contextual beans: $submenu (if expression 'IterateOn' is set).
    Default: true]]>
    Supported contextual beans: $submenu (if expression 'IterateOn' is set).
    Default: true]]>
    Supported contextual beans: $submenu (if expression 'IterateOn' is set).]]>
    This bean is available at render-time only.
    Default: $submenu.]]>
    It first retrieves a vector data (through the Iterable binding), and then retrieves sub-menu info (text, action, tooltip, items, ...) by iterating on the items.
    Sub-menu elements are accessible as a contextual bean (default: '$submenu').]]>
    After having read the message, the user should click the button to continue.
    This action is typically used to implement an acknowledgment page.]]>
    Supported contextual beans: $item.]]> Expected return type: boolean.
    Supported contextual beans: $item.]]>
    Note: the id is only required for leaf items (not nodes).
    Return type must be compatible with the Bind element type..
    Supported contextual beans: $item.]]>
    Note: children items are only requested for node items (not leaves).
    The parent node object is accessible with the $item contextual bean.
    The item type must be compatible with the RootItems.]]>
    Expected type: int, Integer.
    Default: infinite (all expanded).]]>
    This bean is available at render-time only.
    Default: $item.]]>
    First purpose is to allow the user, to select one or several children nodes,
    in the tree. When this one is unfold.
    Second purpose is to allow the user, to select all children nodes of a parent
    node when this one is checked]]>
    This method has to throw a ValidationError to complain about validation issue(s).]]> This bean contains the value that is being validated.
    Default: $value.]]>
    Processes the request and returns the HttpResponse (accessible through the contextual $response bean).
    Supported contextual beans: $response]]>
    Supported value types are: any number type or class.]]> Should be used to implement dynamic form fields.]]> This can be rendered either as a list of checkboxes (default) or a multi-selection list.
    Supported value types are: int[], java.lang.Integer[], enum[] or java.lang.String[]]]>

    Use ZipContry enumeration for 'ZipContryCode' attribute:

    Available enumeration values:
    • USA: US postal code
    • JAP: Japanese postal code
    • DEU: Dutch postal code
    • ARG: Argentinean postal code
    • SWE: Swedish postal code
    • FRA: French postal code
    • CAN: Canadian postal code
    • UK: United Kingdom postal code
    • AUS: Australian postal code
    ]]>
    Should be used to implement dynamic form fields.]]> This can be rendered either as a combo-box (default), a list of radio-buttons or a single-selection list.
    Supported value types are: int, java.lang.Integer, enum or java.lang.String.]]>
    Supported contextual beans: $value]]> This bean contains the text entered by the user.
    It may be used in the 'CompletedValues' expression.
    Default: $value.]]>
    The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $locale]]>
    Default: 'osuit-LanguageBar'.]]> This bean is available at render-time only, and may be used to compute the flag icon.
    Default: $locale.]]>
    Supported contextual beans: $filter (the input filter text)]]> Supported contextual beans:
    • $filter: the filter value (text),
    • $cfilter: the compiled filter (if Compile expression set),
    • $text: the text value to test,
    ]]>
    Default: $filter.]]> Default: $cfilter.]]> Default: $text.]]>
    Allows you to define a custom test to filter values (ex: filtering int values with expressions such as '>1 & <99')]]> The parent node object is accessible with the $item contextual bean.
    The item type must be compatible with the RootItems.]]>
    Supported contextual beans: $item.]]> Supported contextual beans: $item.]]> Supported contextual beans: $item.]]> Expected return type: boolean.
    Supported contextual beans: $item.]]>
    The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $item.]]>
    This bean is available at render-time only.
    Default: $item.]]>
    This action simply navigates to the given url.]]> May be accessed from JSPs using Inlude.getCaller(request).getView(id)]]> May be accessed from JSPs using Inlude.getCaller(request).getAction(id)]]>

    This component can be used to invoke and include rendering from JSPs or servlets.
    The inclusion is carried out using the J2EE request dispatcher.]]>
    Valid examples:

    • 192.168.1.1
    • 195.167.1.119
    • 255.255.255.255


    Unvalid examples:
    • 010.0.0.0
    • 195.167.01.119
    • 256.20.55.23
    ]]>
    Declares a fixed locale to be used for every user of the application.]]> Should be used to implement dynamic form fields.]]> true value. Default: true.]]> Supported value types are: boolean or Boolean.]]> true.]]> ALL.]]> Supported types are: java.util.Date or java.util.CalendarSupported contextual beans: $row]]> Formatting is done according to the declared 'Type' and the user's locale.]]> It provides a richer behavior if the error is a org.ow2.opensuit.xml.base.error.IError (ex: org.ow2.opensuit.xml.base.error.LocalizedError or org.ow2.opensuit.xml.base.error.NonLocalizedError).]]> Supported value type is: java.lang.String]]> This is used by both DoAndForward and SwitchAction components, to define action cases. ]]> If not set, the reload button is not displayed.]]> The callbacked method may throw a org.ow2.opensuit.core.validation.ValidationErrors with all validation error messages.]]> view and edit.
    In view mode, the form shows data (read only).
    In edit mode, the form allows to change values and submit changes.
    Displayed buttons depend on the mode:
    • in view mode: Edit, Reload (if OnReload action is set), and customisable additionnal buttons (see AddButtons),
    • in edit mode: Submit, Reset (if ShowResetButton is true), Cancel.
    The Edit button (if enabled by the Editable condition), switches the form to the edit mode, and the Cancel button (in edition mode) rollbacks the form to the view mode.]]>
    Beans declared here are accessible from any page of the application.]]> The path is relative to the WEB-INF directory and has to start with a '/' (ex: /pages/Welcome).]]> This is the topmost component for modeling a web application.
    This component manages all application-level concerns:
    • rules: that is declaring and factorizing application rules (for authorization purpose for instance),
    • message providers: that is declaring where to get localized messages from,
    • locale policy: that is how to determine the user locale,
    • beans: that is how to get and set data from the business layer, and how to invoke buisiness logic (control),
    • error handling: that is how to display errors to the user in a way he will fully understand and solve the issue,
    ]]>
    Such a page displays a message, and an acknowledgement button.
    The acknowledgement button shall bring the user to another page.]]>
    Such a page displays a message (actually a question), a Yes and a No button.
    The application should react to the user's response.
    This action is typically used to implement user confirmation.]]>
    Supported value types are: java.util.Date or java.util.Calendar]]> Defines when the bean should be instantiated and destroyed.]]> This is a class with public default constructor and public getter and setter methods.]]> Allows to render several tabs.]]> Supported contextual beans: $tab (if expression 'IterateOn' is set).]]> Supported contextual beans: $tab (if expression 'IterateOn' is set).]]> The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $tab (if expression 'IterateOn' is set).]]>
    Supported contextual beans: $tab (if expression 'IterateOn' is set).]]> Supported contextual beans: $tab (if expression 'IterateOn' is set).]]> Supported contextual beans: $tab (if expression 'IterateOn' is set).]]>
    This bean is available at render-time only.
    Default: $tab.]]>
    It retrieves tab items from the Items binding, then iterates on each item to render tabs.
    The current rendering tab may be accessed as a contextual bean (default '$tab').]]>
    The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $item.]]>
    Supported contextual beans: $item.]]> Expected return type: boolean.]]>
    The path is relative to the WEB-INF directory and has to start with a '/' (ex: /pages/MyPage).]]> This page could be either in the same context than the origin page, or in an other context.
    In the second case, all required url parameters have to be valuated to enter the target page.]]>
    This component is in charge of:
    1. doing something,
    2. then return the name of the forward to follow (possibly depending on how the action turned out).
    ]]>
    This allows to override the action to process after the user clicks the "continue" button.]]>
    This component is in charge of reacting to a user or GUI event, then navigating to one of the declared forwards.
    Note that evaluating the forward name is done only when then user triggers the action. This is useful only if information to decide which forward to follow is only available when the user triggers this action. This component is typically used to react to form submissions.
    If information to decide the action is known at render time, then use the SwitchAction instead.]]>
    true.]]> It is aimed at rendering the current page during the rendering phase.]]> If not set, the reload button is not displayed.]]> It is only aimed at presenting non-editable (and navigable) data.]]> java.util.ResourceBundle).]]> The path is relative to the war root directory (ex: 'resources/css/style.css').]]>

    Each page of the Application is displayed in a Frame. A Frame is the part of the GUI that doesn't change much from page to page. It is generally composed of a banner, some menus (left and/or right), and a footer.
    It must embed a PageContainer component, that is in charge of rendering the current executing page (see PageContainer).
    The Application must have at least one Frame, but it may have several (for instance, a specific frame without any menu to display messages and uncatched errors, and another one to access the application administration functionnalities).]]> The path is relative to the WEB-INF directory and has to start with a '/' (ex: /pages/MyPage).]]> This component allows to declare that some pagePath shares the same execution context than another one.
    Beans and url parameters defined in the referenced context may be accessed freely.]]>
    This is mainly used to implement layout and/or conditional visibility.]]> Default: true.]]> Default: true.]]> true.]]> If undefined, the default frame will be used.]]> Such a page displays a message (actually a question), a Yes and a No button.
    The application should react to the user response.]]>
    at rendering time an action among several.
    Instead of the DoAndForward component, this choice is made when the page is rendered.
    Note that if the Switch condition evaluates to an unknown case, no action will be rendered (no hyperlink).]]>
    Supported types are String or numbers (any type).
    Supported contextual beans: $item]]>
    Supported contextual beans: $item]]> Supported contextual beans: $item]]>
    This bean is available at render-time only.
    Default: $item.]]>
    It first retrieves a vector data (through the 'IterateOn' expression), and then retrieves individual items information by iterating on each item.]]> The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').]]> When set, it allows to render several table columns (by iterating on the returned vector).]]> Supported contextual beans: $item (if expression 'IterateOn' is set).]]> Supported contextual beans: $item (if expression 'IterateOn' is set).]]> Supported contextual beans: $row]]> Supported contextual beans: $item (if expression 'IterateOn' is set).]]> Supported contextual beans: $item (if expression 'IterateOn' is set).]]> This class will be set on the header cell (th) as well as on table cells (td).
    Default: None.]]>
    Default: Left.]]> This bean is available at render-time only.
    Default: $column]]>
    Default: 'osuit-Tree'.]]> The file data (information and stream) can be retrieve through file contextual bean, of type org.ow2.opensuit.core.impl.multiparts.IFileUploadPart.
    Supported contextual beans: $file]]>
    This bean may be used in the 'OnUpload' expression to retrieve the input file information and process the upload action.
    It implements the interface org.ow2.opensuit.core.impl.multiparts.IFileUploadPart.
    Default: $file.]]>
    In view mode, this field displays a filename, possibily clickable.
    .In edit mode, it is an upload field.]]>
    For a String value, checks its length is greater than the Min and/or lower than the Max.
    ]]>
    When defined, it is used by Sorter and Filter components preferably than the textual value.
    As a matter of fact, the returned value should implement Comparable
    Supported contextual beans: $row]]>
    Supported contextual beans: $row]]> The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $row]]>
    When defined, the cell text is rendered as an hyperlink.
    Supported contextual beans: $row]]>
    If specified, clicking the cell hyperlink will open a new window.
    Applies only if OnClick action is specified.]]>
    This component should know how to best display details, explainations and advises to the user to let him understand what went wrong, and what to do to solve it.]]> The callbacked method may throw a org.ow2.opensuit.core.validation.ValidationErrors with all validation error messages.]]> If not set, the reset button is not displayed.The associated action should reset all form values to their initial value.]]> If not set, the cancel button is not displayed. This action is expected to navigate (generally leave the current interactive process).]]> Such a form is always in edition mode, shows a submit button and possibly a reset button.
    It is typically used to implement input search criterias page or new entity creation.]]>
    Default: none.]]> If not set, the table displays all rows in the same page.Otherwise, the table truncates data into pages, and shows links to help navigation (previous, next, page accessors, ...).]]> The bottom row is always visible (whatever the pagination).
    It is used for example to implement total sum(s) in a spreadsheet.
    The expression type must be compatible with 'RowsData' elementary type.]]>
    When defined, the Table component displays a collapse/expand button in front of each row.
    Warning: Use this feature with extreme care. For now, only the ViewForm component may be used to design the details view.]]>
    Those buttons may perform multiple actions on table rows (based on selection for instance).]]> Supported contextual beans: $row]]>
    Default: 'osuit-Table'.]]> Default: false.]]> This bean is available at render-time only, and represents the current row that is being rendered.
    Default: $row.]]>
    Default: table.]]>

    It has the following features:

    • supports pagination: a table may or not be paginated (in that case, displays a set of navigation links to help the user navigate accross the table),
    • supports sorting: sorting components may be associated to columns,
    • supports filtering: filter components may be associated to columns,
    Note: in a paginated table, if the total count of elements is not returned by the application, the table adapts its rendering and behavior to handle this situation.

    For large amounts of data, it is highly recommended to use pagination. Otherwise, the table rendering might overwhelm server resources, and also the client browser if the resulting page is very large.
    Moreover, the Table components provides a simple support for sorting, filtering and paginating raw vector data localy (see attribute SortAndPaginateLocaly). This can be very handy for adding table features with no implementation cost, but it also has limits.
    Once again for displaying large amounts of data, it is recommended that you implement yourself those operations (that can perfectly be implemented on the data base side), not to overweight server resources.

    Right before rendering itself, the table component gets vector data from the application with the GetData binding, each element of this vector representing a row in the table.
    During this invocation, the table makes available its rendering context (class org.ow2.opensuit.xml.base.html.table.RenderingContextBean), that may be accessed by application code and by table child components.
    This context is a request Bean with name '$context', and has the following attributes:

    • int page: the currently displayed page number (zero-based),
    • int rowsPerPage: number of rows displayed per page (0 meaning 'unbound').
    • int firstIndex: the first expected object index (= page x rowsPerPage),
    • int sortedColumn: the currently sorted column (1 based). A value of 0 means there is not sort. A negative value means the column is sorted descendingly, a positive value means it is sorted ascendingly.
    • String[] columnFilters: the filters to apply to columns (not implemented yet).
    • rowsCount: the total count of rows (expected to be set by the application).

    Then during the rendering of its rows, the table keeps available the object representing the current row as a request attribute with name '$row'.
    Its attributes may be accessed as any standard Bean.]]> When set, it allows to render several multiple buttons (by iterating on the returned vector).]]> Supported contextual beans: $item (if expression 'IterateOn' is set).]]> Supported contextual beans: $item (if expression 'IterateOn' is set).]]> The path returned by this expression is relative to the war root directory (ex: 'resources/images/icon.png').
    Supported contextual beans: $item (if expression 'IterateOn' is set).]]>
    Supported contextual beans: $item (if expression 'IterateOn' is set).]]> Supported contextual beans: $item (if expression 'IterateOn' is set).
    Default: true.]]>
    Supported contextual beans: $item (if expression 'IterateOn' is set).
    Default: true]]>
    This bean is available at render-time only.
    Default: $item.]]>
    If the IterateOn expression is set, then several buttons will be rendered (by iterating on the returned collection).]]>