通常,servlet具有doGet()
和doPost()
方法。它们用于捕获传入的request parameters
,如果开发人员愿意,可以在应用程序的任何部分使用它们。
现在,如果不是使用servlet,开发人员希望使用jsf managed bean
,有没有办法在bean本身中获取请求参数?如果是这样,怎么办呢?
我已经看到了这个 POST ,它显示了一种从JSF中获取请求的方法。这可以用于在托管bean中获取请求参数,如下所示:
HttpServletRequest origRequest = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String myReqQuery1 = origRequest.getParameter("ReqQuery1");
在这种情况下,应用会使用jsf life cycle
或servlet life cycle
或两者吗?
答案 0 :(得分:0)
JSF并不是那样的。视图中的表单字段(.jsf或其他)由bean中的字段和属性镜像。当servlet在堆栈中进一步调用时,它们会被JSF自动填充。
这使得需要读取冗余的HTTP参数,除非浏览器从非基于JSF的表单登陆JSF页面。因为像Spring-MVC这样的东西可以接受被定位的URI,并在将浏览器重定向到JSF驱动的URL之前建立与ManagedBean实例的连接。