2013-04-09 19 views
0

我*目前正在学习如何使用tapestry 5.3.6,我有一个问题。我需要在2页之间共享信息,为用户完全注册一个虚假的移动运营商,我不知道什么是正确的做法,首先我认为@Persist可以做到这一点,但我意识到这个注释保留了特定页面的信息,并不与其他页面共享......我认为@SessionStated是答案,但我不确定:/如何在2页或更多页面之间传输一些信息?

下面是一个模式来说明我的需要:

第一页:“的personnal信息” =>第二页“信用卡” =>第三页:“恢复和最终提交前的政策词义”

我希望你能帮助我...谢谢很多!

回答

2

你可以用@SessionAttribute,@SessionState和Session来做到这一点。

  1. 会话属性:

    @SessionAtribute("myObject") 
    private MyObject myObject; 
    
  2. 会话范围的对象:

    @SessionState 
    private MyObject myObject; 
    
  3. 会话API:

    @Inject 
    private Request request; 
    
    void someMethod() { 
        final Session session = request.getSession(true); 
        session.setAttribute("myObject", myObject); 
    } 
    

更多信息here

+0

对于这类信息使用会话是否正确?因为我认为会话在这里是为了保存一些关于登录用户的信息?但不要在表单之间共享一些临时信息 – BlackMario

+0

http://docs.oracle.com/cd/A97688_16/generic.903/bp/j2ee.htm#1010654 – sody

+0

Tapestry为您提供了很多选择;在某些情况下,您可以使用第二页的页面激活上下文从第一页传递信息(如果它只是一个简单的字符串或数字)。我把它想象成一个“桶旅”,每个页面负责将一些数据传递给下一个。 –

相关问题