我需要一个以下方案的解决方案。
我有一个带有多选列表框和提交按钮的主页。现在列表框只有大约5个项目,但将来列表框中可以有50到100个项目。对于每个选定的项目,它应按顺序打开项目详细信息屏幕。例如,如果列表框中有10个项目,当用户选择第2个,第5个和第9个项目并单击“提交”时,应首先显示第2个详细信息页面,然后显示第5页和第9页。从第9页提交后,下一页应该是主页。
我将使用Jsf 2.0或Jsf 2.1我在某处读到我们不应该在Jsf 2.x中使用faces-config.xml所以我不确定如何实现上述场景。谢谢你的帮助。
答案 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
// ...
}
希望这有帮助。