Your code is a bit confusing. I don’t get what you are trying to do here. You have a mapping for /login that invokes a method that logs the user out.
And could you please the code where you placed the @PreDestroy?
I’m also not really sure if it makes sense to call pretty:user-test in the menu item. If you invoke loginMB.doLogout directly, you browser will send a postback, call the logout code and then redirect to the login page. But if you have pretty:user-test in your action attribute, you will get a postback, then a redirect to the login page which invokes the logout method and then redirects to the login page again. That doesn’t make sense to me.
In my applications I typically have two distinct mappings for login and logout. Something like this: