2015-10-19 38 views
0

之间传递参数我有两个托管bean类型@ViewScoped。 一个bean列出了用户的项目。另一个显示项目的扩展信息。我通过url传递了项目的ID,这是它与viewscoped bean一起工​​作的唯一方式。在ViewScoped

但我不喜欢这种方式,因为用户可以尝试更改值url并查看来自其他用户的项目。我想知道在页面之间传递参数的方式有没有被用户看到,并且避免了额外的安全检查。

+3

请看看http://stackoverflow.com/questions/20880027/passing-parameters-to-a-view-scoped-bean-in-jsf或http://stackoverflow.com/questions/16817395/how -to-send-data-between-views-having-a-viewscoped-bean或者这里是@Balusc http://stackoverflow.com/questions/25694423/pass-an-object-between-viewscoped-beans-without-using -get-PARAMS –

回答

0

如果建议的闪存范围不可用另一种方式来做它没有额外的安全检查将使用@SessionScoped带注释的bean。但是请确保会话scoped bean只包含必要的数据,否则会遇到其他麻烦。

例如:

@SessionScoped 
public class AccessibleItems { 

    private List<Items> items; // or private List<Integer> itemIds; 

} 

@ViewScoped 
public class ItemView { 

    @ManagedProperty(value="#{accessibleItem}") 
    private AcessibleItems accessibleItems; 

} 

但毕竟在我的愚见做额外的安全检查。因为更新数据时不会遇到任何问题,特别是在许多地方使用它们,而且您的网页设计更好。