Java JSF—如何在从Servlet重定向到JSF视图后处理Bean中的数据
基本上,我有一个视图,用户将在其中输入一些信息并提交。该信息将发送给处理数据的第三方。第三方将把结果发回给我,我将在Servlet中拦截它。现在,为了在我的应用程序中继续前进,根据第三方返回给我的结果,我需要验证Servlet在会话bean中接收到的值(我无法直接在Servlet中验证该值的原因是我需要来自bean的一些信息),所以我的问题是,如果无法从Servlet访问FacesContext,我如何才能做到这一点 我知道我可以直接在Servlet中预创建FacesContext来访问它,但我也知道不建议这样做。我也听说过使用PhaseListener,但我不知道如何在我的情况下实现这一点,我不确定这是否真的能解决我的问题,如果没有更简单的解决方案 这就是我现在拥有的:Java JSF—如何在从Servlet重定向到JSF视图后处理Bean中的数据,java,jsf,servlets,Java,Jsf,Servlets,基本上,我有一个视图,用户将在其中输入一些信息并提交。该信息将发送给处理数据的第三方。第三方将把结果发回给我,我将在Servlet中拦截它。现在,为了在我的应用程序中继续前进,根据第三方返回给我的结果,我需要验证Servlet在会话bean中接收到的值(我无法直接在Servlet中验证该值的原因是我需要来自bean的一些信息),所以我的问题是,如果无法从Servlet访问FacesContext,我如何才能做到这一点 我知道我可以直接在Servlet中预创建FacesContext来访问它,但我
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException
{
try
{
req.setCharacterEncoding("UTF-8");
String response = req.getParameter( "response");
HttpSession sess = req.getSession();
MyBean myBean= (MyBean) sess.getAttribute("myBean");
//I am setting the response in my bean here, so I can
//use it later to verify its value and move on the user within
//the application depending of the value
myBean.setResponse(response);
resp.sendRedirect("view1.jsf");
}
catch (Exception e)
{
}
这实际上是可行的,我被重定向到view1,但是,我不知道如何调用Bean,我想从那里验证响应
在此,任何帮助都将不胜感激。(如果幸运的话,我可能会从@BalusC;)获得一些见解)如果这是一个JSF管理的bean,你不能在视图中使用#{myBean}来命名它吗?@Nikhil-Talreja绝对是的。它是一个JSF管理的bean,我可以使用#{myBean}。但是我的目标是在收到Servlet后立即验证它收到的响应,而不需要用户执行任何操作。您试图调用哪种bean,从代码的哪个部分调用xhtml,Servlet?您需要调用JSF bean上的方法吗,在servlet内部?只要我可以将servlet在JSF上下文中接收到的值传递回Bean,以便在Bean中使用它,我就可以从servlet调用Bean中的验证方法,也可以不从servlet调用。基本上,我在这里试图实现的是一个双因素身份验证。一旦用户使用其凭据登录,第三方将与用户交互,然后将交互结果发回servlet。根据结果,我需要让用户登录或将其发送回身份验证步骤1。因此,基本上我只需要将值传递回servlet并完成工作。