使用jsf的动态页面url

  • 本文关键字:url 动态 jsf 使用 jsf
  • 更新时间 :
  • 英文 :


我需要一个动态的URL页面。假设用户配置文件页面。

例子:

  • 用户配置文件(salah)的URL socail.com/salah和页面必须显示salah数据
  • 用户配置文件(wael)的URL socail.com/wael和页面必须显示wael数据

您需要一个适合您需要的映射servlet,如下所示:

@WebServlet("/")

然后,当有人输入URL,如yourpage.com/<anything here>,那么这个servlet将处理请求。要从url获取用户名你需要这样做:

String username = request.getRequestURI().substring(1) -这将获得没有主机名的请求信息并从中剥离/

设置参数(您的info),以便您可以在JSF中检索它:

request.setAttribute("userInfo", getSomeInfoByUsername(username));

然后您可以将请求转发到JSF视图文件,如下所示:
request.getRequestDispatcher("faces/index.xhtml").forward(request,response);

然后在JSF文件中,你可以这样做从请求中获取信息:

<h:outputText value="#{requestScope.userInfo}"/>

如果我没有错过任何东西,这些就是你需要的所有部分,从URL获取用户名可能可以用更好的方式检索,但我现在什么也没想到。

关于servlet的更多信息在这里

如果我理解正确的话,你想在请求/会话属性的基础上动态重定向控制:

你可以得到ExternalContext的帮助。例如:

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect(context.getRequestContextPath() + "userProfile.jsf?user=" + user);

user是通过backing bean传递的属性。

我假设您已经使用过JSF。

相关内容

  • 没有找到相关文章

最新更新