I have a page to list all Actions. from this list i open an ActionDetails
page by setting the actionId to the page.

ActionDetails.page has <property name="actionId"/>
and the page class has a method
public Action getAction() { ...} that gets the actionId from the page and
uses it to get the correct action from database and returns it

on the ActionDetails page i have several different components showing
various information about the action. for example
i have userDetails component that shows the information related to the User
object that is set to the action, and
all of this date should be editable from a form. so i pass the User object
to this component in the ActionDetails.page:
   <component id="userDetails" type="UserDetails">
       <binding name="user" value="action.user"/>
   </component>

   and UserDetails component has
       @Parameter(name = "user", required = true)
   public abstract User getUser();

i can get the user data to the form, but when submit the form (with changed
data or not) i get
ognl.OgnlException - source is null for getProperty(null, "user")

obviously the user isn´t persisted? what is the  correct way to persist user
and action objects so the user is updated
and i´m returned to the page showing action details.

i tried to add <property name="action" persist="session"/> to
ActionDetails.page but that causes the action passed to
other components on the page to be null. would it help if i set the Action
object straight from the listing page and persist it then, so there's no
need to fetch it from the db in the page?

this is probably pretty basic stuff, but for some reason i dont seem to find
any examples how to do it.

Reply via email to