0

Save user after login

asked 2012-12-26 19:55:48 +0800

Eustas gravatar image Eustas
75 1

I use zkoss mvvm + Spring mvc.
Please advise how to save the user after login in proper way?
What session I have to use?
Does it exist standart way in zkoss?

delete flag offensive retag edit

4 Replies

Sort by ยป oldest newest

answered 2012-12-27 00:27:05 +0800

rdgrimes gravatar image rdgrimes
735 7

Personally, I save the User object into a session attribute so that it's available from all viewmodels and other classes.

Sessions.getCurrent.setAttribute("user", user);

and 

User user = (User) Sessions.getCurrent().getAttribute("user");


Ron

link publish delete flag offensive edit

answered 2012-12-27 08:23:14 +0800

samchuang gravatar image samchuang
4084 4

you can also refer to
http://books.zkoss.org/wiki/Small_Talks/2012/November/Integrate_ZK_with_Spring_MVC_3

link publish delete flag offensive edit

answered 2012-12-27 14:29:55 +0800

Eustas gravatar image Eustas
75 1

updated 2012-12-27 14:30:38 +0800

Thank you.
But I cannot understand what scope of vieModel class for every page.
I have such main page

<window ... apply="org.zkoss.bind.BindComposer"
        viewModel="@id('vm') @init('com.MyDesktopViewModel')">

       <menuitem label="Show page1" onClick="@command('makeVisiblePage1')"></menuitem>
       <menuitem label="Show page1" onClick="@command('makeVisiblePage2')"></menuitem>
       <menuitem label="Show page1" onClick="@command('makeVisiblePage3')"></menuitem>

       <div>
                <include hflex="1" src="page1.zul"   visible="@load(vm.visiblePage1)"></include>
                <include hflex="1" src="page1.zul"   visible="@load(vm.visiblePage2)"></include>
                 <include hflex="1" src="page1.zul"   visible="@load(vm.visiblePage3)"></include>
       </div>

As I understand this page is Desktop including my pages by include tag, correct?

When I click menu items "Show page1","Show page2","Show page3", the new instance of MyDesktopViewModel is being created.
But I want to save state of MyDesktopViewModel's fields between these pages.
What a implicit scope of VieModel?
can I set explicitly Session scope or Desktop scope for MyDesktopViewModel to have the same instance for all included pages.

link publish delete flag offensive edit

answered 2013-01-07 02:52:22 +0800

samchuang gravatar image samchuang
4084 4

updated 2013-01-07 02:53:20 +0800

VieModel's scope is component. If you wanna keep state across different page (ViewModel instance), you can save those fields to session or somewhere

for login "user", normally will save it in session

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2012-12-26 19:55:48 +0800

Seen: 79 times

Last updated: Jan 07 '13

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More