jsf托管bean可以像servlet一样运行吗?

时间:2014-02-19 13:18:04

标签: java jsf servlets managed-bean

通常,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 cycleservlet life cycle或两者吗?

1 个答案:

答案 0 :(得分:0)

JSF并不是那样的。视图中的表单字段(.jsf或其他)由bean中的字段和属性镜像。当servlet在堆栈中进一步调用时,它们会被JSF自动填充。

这使得需要读取冗余的HTTP参数,除非浏览器从非基于JSF的表单登陆JSF页面。因为像Spring-MVC这样的东西可以接受被定位的URI,并在将浏览器重定向到JSF驱动的URL之前建立与ManagedBean实例的连接。