Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF—如何在从Servlet重定向到JSF视图后处理Bean中的数据_Java_Jsf_Servlets - Fatal编程技术网

Java JSF—如何在从Servlet重定向到JSF视图后处理Bean中的数据

Java JSF—如何在从Servlet重定向到JSF视图后处理Bean中的数据,java,jsf,servlets,Java,Jsf,Servlets,基本上,我有一个视图,用户将在其中输入一些信息并提交。该信息将发送给处理数据的第三方。第三方将把结果发回给我,我将在Servlet中拦截它。现在,为了在我的应用程序中继续前进,根据第三方返回给我的结果,我需要验证Servlet在会话bean中接收到的值(我无法直接在Servlet中验证该值的原因是我需要来自bean的一些信息),所以我的问题是,如果无法从Servlet访问FacesContext,我如何才能做到这一点 我知道我可以直接在Servlet中预创建FacesContext来访问它,但我

基本上,我有一个视图,用户将在其中输入一些信息并提交。该信息将发送给处理数据的第三方。第三方将把结果发回给我,我将在Servlet中拦截它。现在,为了在我的应用程序中继续前进,根据第三方返回给我的结果,我需要验证Servlet在会话bean中接收到的值(我无法直接在Servlet中验证该值的原因是我需要来自bean的一些信息),所以我的问题是,如果无法从Servlet访问FacesContext,我如何才能做到这一点

我知道我可以直接在Servlet中预创建FacesContext来访问它,但我也知道不建议这样做。我也听说过使用PhaseListener,但我不知道如何在我的情况下实现这一点,我不确定这是否真的能解决我的问题,如果没有更简单的解决方案

这就是我现在拥有的:

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并完成工作。