JSF2.x:基于列表框选定项目的导航

时间:2011-07-01 18:22:09

标签: jsf-2

我需要一个以下方案的解决方案。

我有一个带有多选列表框和提交按钮的主页。现在列表框只有大约5个项目,但将来列表框中可以有50到100个项目。对于每个选定的项目,它应按顺序打开项目详细信息屏幕。例如,如果列表框中有10个项目,当用户选择第2个,第5个和第9个项目并单击“提交”时,应首先显示第2个详细信息页面,然后显示第5页和第9页。从第9页提交后,下一页应该是主页。

我将使用Jsf 2.0或Jsf 2.1我在某处读到我们不应该在Jsf 2.x中使用faces-config.xml所以我不确定如何实现上述场景。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

有趣的问题,你从我那里得到+1。

首先,你说的是50多个项目,所以显然你需要一个能够呈现所有项目类型的页面。

在带有列表框的页面上,提交表单后,您可以使用项目ID填充java.util.List并将索引变量设置为0。然后,您应该进入项目呈现页面。在该页面上,您应该处理preRenderView事件,以便在当前索引的列表中显示该项目。您也可以将该事件放在@ConversationScoped bean中。您对该页面的表单提交操作也应该在@ConversationScoped bean中处理,操作会增加索引,以便在下一页加载时显示下一个项目。

修改 由于每个项目需要一个JSF页面,因此您可以调整此想法并在操作中返回视图ID。

public String submit() {
    // Some processing logic here
    // ...

    // Return the view ID of the next item and increment the index.
    return items.get(index++).getViewId();
}

您的项目类可能是这样的:

public class Item {
    private int id;
    private String name;
    private String description;
    private String viewId;

    // Getters and setters
    // ...
}

希望这有帮助。