On permission page I dont think u need @persist, you are setting the user
already.

The reason: I think its because when it goes to save it is using the stale
user object discarding the form submission changes.
On 27/11/2014 12:45 pm, "Name Surname" <wintertime0...@outlook.com> wrote:

> I have one very odd situation here and it regards beaneditform. I have
> implemented following code:
>
>
> public class ListUsers {
>
>     @Inject
>     private Logic logic;
>
>     @InjectPage
>     private PermissionsPage permissionsPage;
>
>
>     @Property
>     private User user;
>
>     /**
>      * Vraca listu korisnika
>      * @return user list
>      */
>     public List getUsers()
>     {
>         return logic.izlistajSveKorisnike();
>     }
>
>     /**
>      * Deletes user
>      * @return null
>      */
>     @CommitAfter
>     public String onActionFromDelete(User u)
>     {
>         logic.deleteUser(u);
>         return null;
>     }
>
>     /**
>      * redirects to permissions page
>      * @param k
>      * @return page permissionspage
>      */
>     public Object onActionFromEdit(User u)
>     {
>         permissionsPage.setData(u);
>         return permissionsPage;
>     }
>
> <t:layout t:pageTitle='${message:ListUsers}' xmlns:t="
> http://tapestry.apache.org/schema/tapestry_5_3.xsd";
> xmlns:p="tapestry:parameter">
>     <t:form>
>         <div class="grid-container">
>             <t:grid source="users" row="user"
> exclude="userID,userPassword,userTypeOfTheUser,listOfQuestions,listOfMessages,
> isAdmin, isUser" add="edit,delete">
>
>                 <p:deletecell>
>                     <t:actionlink t:id="delete" context="user">Delete
> user</t:actionlink>
>                 </p:deletecell>
>                 <p:editcell>
>                     <t:actionlink t:id="edit" context="user">Edit
> permissions</t:actionlink>
>                 </p:editcell>
>             </t:grid>
>         </div>
>     </t:form>
> </t:layout>
>
>
>
> Here I have a ListUsers page which has all users listed pulled from DB.
>
>
> Now when a client clicks on Edit permissions button of some user from the
> list it redirects him to a PermissionsPage which is following:
>
> <t:layout t:pageTitle='${message:PermissionsPages}' xmlns:t="
> http://tapestry.apache.org/schema/tapestry_5_3.xsd";>
> <t:beaneditform t:id="form" object="user"
> exclude="userUserName,userPassword" submitlabel="Save"/>
> </t:layout>
>
> public class PermissionsPage {
>
>     @Component
>     private BeanEditForm form;
>     @Inject
>     private Logic logic;
>     @Property
>     @Persist(value = "flash")
>     private User user;
>
>     /**
>      * After succesfully submitting from a form redirect a user to a page
>      * ListClassesPage
>      *
>      * @return ListClassesPage
>      */
>     @CommitAfter
>     public String OnSuccess() {
>         logic.editUser(user);
>         return "ListClassesPage";
>     }
>
>     /**
>      * Sets user
>      * @param u user
>      */
>     public void setData(User u) {
>         user = u;
>     }
> }
>
>
>
> Now after I press Save, it fires event however doesn't process anything?
> Am I somewhere wrong?
> Also because of the issue regarding
> http://stackoverflow.com/questions/5366498/tapestry-5-beaneditform-component-trouble
> I had to remove all constructors from entity User but default one. If
> anyone knows or had similar trouble with this, would be grateful to hear
> his/her solution.
>
> Thanks in advance.
>
>

Reply via email to