Jsf 2 JSF2.x:基于列表框选定项的导航
我需要以下场景的解决方案 我有一个带有多选列表框和提交按钮的主页。现在列表框只有大约5个项目,但将来列表框中可能有50-100个项目。对于每个选定的项目,它应按顺序打开项目详细信息屏幕。例如,如果列表框中有10个项目,当用户选择第2、第5和第9个项目并单击“提交”时,应首先显示第2个详细信息页面,然后显示第5和第9个页面。从第9页提交后,下一页应为主页Jsf 2 JSF2.x:基于列表框选定项的导航,jsf-2,Jsf 2,我需要以下场景的解决方案 我有一个带有多选列表框和提交按钮的主页。现在列表框只有大约5个项目,但将来列表框中可能有50-100个项目。对于每个选定的项目,它应按顺序打开项目详细信息屏幕。例如,如果列表框中有10个项目,当用户选择第2、第5和第9个项目并单击“提交”时,应首先显示第2个详细信息页面,然后显示第5和第9个页面。从第9页提交后,下一页应为主页 我将使用JSF2.0或JSF2.1我在某处读到,我们不应该在JSF2.x中使用faces-config.xml,因此我不确定如何实现上述场景。谢
我将使用JSF2.0或JSF2.1我在某处读到,我们不应该在JSF2.x中使用faces-config.xml,因此我不确定如何实现上述场景。谢谢你的帮助。有意思的问题,我给你打+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
// ...
}
希望这能有所帮助。@Prakash:刚刚注意到一条你删除的评论。您是说您希望每个项目都有一个单独的
.xhtml
页面吗?你不介意在添加或更改项目时重新部署应用程序吗?Steve感谢你的回复。是的,我想要单独的.xhtml,如果项目发生变化,我不介意重新部署应用程序。假设主页中的列表框有Item1、Item2、Item3、Item4和Item5。当用户多重选择Item1、Item4和Item5并提交主页时,下一个页面应该是Item1.xhtml,当用户提交Item1时。xhtml下一页应该是Item4。xhtml和用户提交Item4的时间。xhtml下一页应该是Item5。然后是xhtml和主页。所以我想知道如何根据所选项目动态设置下一页。Thks@Prakash嗯,你应该能够使我的建议适应这一点。在item类中,有一个字符串字段,其中包含项目页面的视图ID。然后,可以在操作中返回相应的视图ID。容易的!好啊当我进行开发时,我将向您提供最新信息。谢谢你的建议,当然可以。随时通知我。你可能会注意到我在编辑答案时考虑了不同的页面。