Tapestry:什么时候会话状态对象应该优先于会话属性?

时间:2015-06-11 11:18:19

标签: session session-variables session-state tapestry

Tapestry doc开始,我似乎明白用@SessionAttribute注释的字段和用@SessionState注释的字段以相同的方式工作,除了@SessionAttribute存储值按名称(并且可以指定名称),这意味着可以存储同一个类的不同实例,而@SessionState按类型存储值,因此存储同一个类的不同实例将不起作用,新实例将始终覆盖旧的(即使两者是具有不同名称和不同类别的不同字段)。

所以@SessionState似乎没有@SessionAttribute提供任何优势,只有限制,但我可能会遗漏一些东西。我无法弄清楚出于任何原因使用@SessionState@SessionAttribute更明智的情况。

有这种情况吗?

1 个答案:

答案 0 :(得分:0)

@SessionAttribute主要用于某些互操作情况,其中一些其他非Tapestry代码(另一个servlet)期望使用明确指定的名称存储数据。

@ SessionState的优点是名称是根据类型自动确定的...少关心一点,更适合重构。