我需要一个包含动态网址的网页。我们假设用户个人资料页面。
示例:
如何使用JSF框架执行此操作。
答案 0 :(得分:1)
您需要有一个适合您需要的映射的servlet,如下所示:
@WebServlet("/")
然后当有人输入yourpage.com/<anything here>
之类的网址时,此servlet将处理该请求。要从该网址获取用户名,您需要执行以下操作:
String username = request.getRequestURI().substring(1)
- 这将收到没有主机名的请求信息,并从中删除/
。
设置参数(您的信息),以便在JSF中检索它:
request.setAttribute("userInfo", getSomeInfoByUsername(username));
然后您可以将请求转发到您的JSF视图文件,如下所示:
request.getRequestDispatcher("faces/index.xhtml").forward(request,response);
然后在JSF文件中,您可以执行以下操作以从请求中获取信息:
<h:outputText value="#{requestScope.userInfo}"/>
如果我没有错过任何你想要的东西,那么从URL获取用户名可能会以更好的方式被检索出来,但现在我没有想到任何事情。
答案 1 :(得分:0)
如果我理解正确,您希望根据请求/会话属性动态重定向控件:
您可以获得ExternalContext
的帮助。例如:
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect(context.getRequestContextPath() + "userProfile.jsf?user=" + user);
user是通过辅助bean传递的属性。
话虽如此,我认为您已经使用过JSF。