JSF web应用程序——基于url参数打开特定页面



我们的项目使用了一个使用JSF、primefaces、xhtml开发的Web应用程序。当前用户可以通过点击"操作"链接登录并按顺序浏览页面,如:-

index.xhtml --> login.xhtml --> classes.xhtml --> students.xhtml --> student_info.xhtml

即首次登录-->显示班级列表-->用户选择一个班级-->显示该班级的学生列表-->用户选定一个学生-->显示学生信息。每个页面都有自己的"backingbean"类。当用户点击页面时,它们会被实例化。此外,用户可以通过每个页面上的某些链接导航回来——比如说,从"student_info"页面,他/她可以回到"students"页面。

现在的要求是:用户可以直接进入内部页面,例如student_info页面,方法是键入带有附加参数的"url"?user=alice?passwd=xyz?class=5?studentRollNo=15

此外,用户应该仍然能够导航回其他页面(即,一旦打开页面,无论用户是正常导航到student_info页面,还是直接向url提供参数,他们的行为都应该没有差异)。

我的问题是:-

  • 如何在JSF中读取url参数
  • 哪个页面(或backingbean)应该处理这些参数?它应该集中完成,还是在每个页面(backingbean)中完成
  • 如果每个页面只处理其相关的参数,有没有办法将剩余的参数重定向到下一页
  • 在这种实现中使用的最佳实践是什么

注:

  • 实际的web应用程序要复杂得多,试图提供一个更简单的图片来解决我的问题
  • JSF、Web应用程序等的新手。不知道是否有一些JSF术语来描述上述问题

您可以通过url请求传递它,每个BackingBean都会处理它
例如:mypage.xhtml?myparam=测试

并在BackingBean中注入HttpServlet请求(如果您使用CDI)

@Inject
HttpServletRequest request;

并获取参数

@PostConstruct
public void init() {
    String myparam = request.getParameter("myParam");     
}

要重定向到其他页面,可以使用

public String redirect() {
    return "otherPage.xhtml?faces-redirect=true&otherParam=test";
}

相关内容

  • 没有找到相关文章

最新更新