Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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页面_Java_Jsf_Jdeveloper - Fatal编程技术网

Java 从按钮重定向JSF页面

Java 从按钮重定向JSF页面,java,jsf,jdeveloper,Java,Jsf,Jdeveloper,我试图在单击登录按钮时重定向jsf页面,但它不起作用。 在我的例子中,当我单击login按钮时,检查是否在数据库中找到了用户,一旦找到它,系统将重定向到utitled2.jsf页面 我正在jdeveloper下使用J2ee。有人能帮我吗 这是我在sessionEJB中的功能 public UserEntity authentification(String login, String pwd) { try{ Query query;

我试图在单击登录按钮时重定向jsf页面,但它不起作用。 在我的例子中,当我单击login按钮时,检查是否在数据库中找到了用户,一旦找到它,系统将重定向到utitled2.jsf页面 我正在jdeveloper下使用J2ee。有人能帮我吗

这是我在sessionEJB中的功能

public UserEntity authentification(String login, String pwd) {

        try{
            Query query;
            query = em.createQuery("select o from UserEntity o where " + " o.login = :LOGIN AND o.pwd = :PWD");
            query.setParameter("LOGIN",login);
            query.setParameter("PWD",pwd);
     return       
                 (UserEntity) query.getSingleResult();





        }
        catch(Exception e){
                e.printStackTrace();
                return null;
        }

    }
这是我的背豆

public String loginaction() {

        BindingContainer bindings = getBindings();
        OperationBinding operationBinding = bindings.getOperationBinding("authentification");
        Object result = operationBinding.execute();
        if (!operationBinding.getErrors().isEmpty()) {
            return "success";
        }
        return null;
    }
这是我的脸

<?xml version="1.0" encoding="windows-1256"?>
<faces-config version="2.1" xmlns="http://java.sun.com/xml/ns/javaee">
  <application>
    <default-render-kit-id>oracle.adf.rich</default-render-kit-id>
  </application>
  <navigation-rule>
    <from-view-id>/login.jsf</from-view-id>
    <navigation-case>
      <from-action>#{backing_login.loginaction}</from-action>
      <from-outcome>success</from-outcome>
      <to-view-id>/untitled2.jsf</to-view-id>
      <redirect/> 
    </navigation-case>
  </navigation-rule>
</faces-config>

oracle.adf.rich
/login.jsf
#{backing_login.loginaction}
成功
/untitled2.jsf
这是我的login.JSF

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html>
<f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <af:document title="login.jsf" id="d1" binding="#{backingBeanScope.backing_login.d1}">
        <af:messages binding="#{backingBeanScope.backing_login.m1}" id="m1"/>
        <af:form id="f1" binding="#{backingBeanScope.backing_login.f1}">
            <af:panelFormLayout id="pfl1" binding="#{backingBeanScope.backing_login.pfl1}">
                <af:inputText value="#{bindings.login.inputValue}" label="#{bindings.login.hints.label}"
                              required="#{bindings.login.hints.mandatory}"
                              columns="#{bindings.login.hints.displayWidth}"
                              maximumLength="#{bindings.login.hints.precision}"
                              shortDesc="#{bindings.login.hints.tooltip}" id="loginfield"
                              binding="#{backingBeanScope.backing_login.it1}">
                    <f:validator binding="#{bindings.login.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.pwd.inputValue}" label="#{bindings.pwd.hints.label}"
                              required="#{bindings.pwd.hints.mandatory}" columns="#{bindings.pwd.hints.displayWidth}"
                              maximumLength="#{bindings.pwd.hints.precision}" shortDesc="#{bindings.pwd.hints.tooltip}"
                              id="it2" binding="#{backingBeanScope.backing_login.it2}">
                    <f:validator binding="#{bindings.pwd.validator}"/>
                </af:inputText>
                <af:button text="authentification"
                           disabled="#{!bindings.authentification.enabled}" id="b1"
                           binding="#{backingBeanScope.backing_login.b1}"
                           action="#{backingBeanScope.backing_login.loginaction}"/>
            </af:panelFormLayout>
        </af:form>
    </af:document>
    <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_login-->
</f:view>

在你的backingbean方法
loginaction
中,你应该返回一个string对象,其中应该包括你想要函数重定向的页面的名称,而不是返回null(这意味着你告诉JSF保持在当前视图中)。如果您使用的是faces应用程序,则此格式应适用(否则应类似,请联机检查):


尝试返回一个字符串而不是null,并在会话ejb的某些导航规则中使用它。你是说???例如return(“success”)Yes确切地说,在支持bean中,不要返回null,而是尝试返回“fail”例如,与一些导航ruel一起使用,以查看问题所在,但它显示了一个错误“Nom id introvable dans l'objet donné:success”。这意味着在英文名称中,在给定对象中找不到id,因此您获得了成功结果,但不再存在于您的导航规则中,这是一个好迹象,因为这意味着成功的结果正在发挥作用。确保对失败和成功这两种结果都有导航规则-
return "/faces/nameOfPageToRedirect.jsf?faces-redirect=true";