我想了解JSF如何存储视图和恢复视图.我已经读过它正在为每个视图创建单独的视图ID并将其存储在服务器上.然后它检索.以下是我的问题:
在什么基础上创建和存储视图ID?
视图ID是视图文件的上下文相对路径.例如/foo.jsp或/foo.xhtml.该ViewHandler实施负责创建它并将其存储在UIViewRoot.
它是基于在faces-config.xml上声明的JSP创建的吗?
那些不一定需要在任何地方声明faces-config.xml.对于每个传入请求,它由底层HttpServletRequest对象通过其getPathInfo()或getServletPath()方法从请求URI中提取,具体取决于FacesServlet它本身是分别用前缀pattern(/faces/*)还是后缀pattern(*.jsf)映射.
当JSF需要按照in 导航到新视图<navigation-case>时faces-config.xml,只需从中提取新视图ID,并UIViewRoot在调用操作阶段结束时创建新视图ID .否则,JSF只会返回与请求发起时相同的视图.
基本上它是为每个JSP创建的一个视图ID吗?
是的,每个视图都有自己的唯一标识符,这基本上只是它在webapplication上下文中的位置.
如何传递视图ID来呈现响应?它是否在请求参数中传递?
它们存储在UIViewRoot其中,而这些只是由它们提供FacesContext#getViewRoot().该ViewHandler实现只是getViewId()在renderView()方法期间调用.
| 归档时间: |
|
| 查看次数: |
6053 次 |
| 最近记录: |