in ofbiz forms are fixed, like most you see in widgets and ftls. you have a entity and/or context that stores the info, like in maps. you then use the widget/ftl form to display the data in the entity or context. the ItemsToShow would be a map. you would then iterate the map. you can see many examples of this. you then set a field on the selection here is an example you can find it in the blllingaccountsform.xml <form name="ListBillingAccounts" type="list" list-name="billingAccounts" paginate-target="FindBillingAccount" default-entity-name="BillingAccount" odd-row-style="alternate-row" default-table-style="basic-table hover-bar"> <field name="billingAccountId" widget-style="buttontext"> <hyperlink description="${billingAccountId}" target="EditBillingAccount?billingAccountId=${billingAccountId}"/> </field> this would got thru the contorller that would call setPortalPortletAttributes then return to a view request.
Bruno Busco sent the following on 11/2/2008 2:05 AM: > Hi devs, > I need your help. > > I am trying to complete the Portal/Portlet stuff adding the possibility to > set some attributes specific to a Portlet instance. > > The idea is that when a portlet is defined, a form is defined also and > linked in the PortalPortlet entity with something similar to this: > <PortalPortlet portalPortletId="LOGIN" portletName="Login" > description="Login form" > screenName="loginPortlet" > screenLocation="component://common/widget/PortletScreens.xml" > editFormName="LoginPortletEdit" > editFormLocation="component://common/widget/PortletEditForms.xml" /> > > The form is needed to edit a particular Portlet instance attributes. This > extends from a common frame defined in the framework like this: > <form name="CommonPortletEdit" type="single" > target="setPortalPortletAttributes" title="" > default-map-name="PortalPortletAttributeMap"> > <field name="portalPageId"><hidden/></field> > <field name="portalPortletId"><hidden/></field> > <field name="portletSeqId"><hidden/></field> > <field name="submitButton" title="${uiLabelMap.CommonEdit}"><submit > button-type="button"/></field> > </form> > > Using this method an example of a specific portlet attribute editing form > could be: > <form name="LoginPortletEdit" extends="CommonPortletEdit" > extends-resource="component://common/widget/CommonForms.xml"> > <field name="ItemsToShow"> > <drop-down allow-empty="false"> > <option key="5"/> > <option key="15"/> > <option key="20"/> > <option key="25"/> > <option key="30"/> > <option key="35"/> > </drop-down> > </field> > </form> > > In this example I supposed that the portlet has an attribute "ItemsToShow" > that tells the portlet how many items to show. > > When the user submits one of the portlet attributes editing forms, the > setPortalPortletAttributes service is triggered. > > My problem is now how to make this service able to retrieve from the > submitted form the list of fields so that the Attribute entities can be > created/updated. > > Is there an example of this in OFBiz? > How can the service receive a map of fields that is not constant to iterate > on? > > Many thanks for your help! > -Bruno >