JSF Web应用程序 - 根据url参数打开特定页面

时间:2015-02-24 17:56:26

标签: jsf web-applications navigation

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

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

即。首次登录 - >显示类列表 - >用户选择一个类 - >显示该班级的学生列表 - >用户选择学生 - >显示学生信息。 每个页面都有自己的'支持bean'类。当用户点击页面时,它们被实例化。 此外,用户可以通过每个页面上的某些链接返回 - 例如,来自' student_info'页面,他/她可以回到学生的#39;页。

现在要求是:用户可以直接通过输入' url'来到内页,例如,student_info页。附加参数?user=alice?passwd=xyz?class=5?studentRollNo=15

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

我的问题是: -

  • 如何在JSF中阅读url参数?
  • 哪个页面(或支持bean)应该处理参数?它应该集中完成,还是在每个页面(支持bean)中完成?
  • 如果每个页面仅处理其相关参数 - 是否可以将剩余参数重定向到下一页?
  • 此类实施中使用的最佳做法是什么?

注意:

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

1 个答案:

答案 0 :(得分:0)

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

并在BackingBean中注入HttpServletRequest(如果您使用的是CDI)

@Inject
HttpServletRequest request;

并获取参数

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

重定向到您可以使用的其他页面

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