Redirection d'une page JSF a partir d'un bouton

omarkalkaf Messages postés 1 Date d'inscription mardi 24 juin 2014 Statut Membre Dernière intervention 25 juin 2014 - 25 juin 2014 à 00:07
Dinath Messages postés 1602 Date d'inscription vendredi 12 avril 2013 Statut Contributeur sécurité Dernière intervention 6 novembre 2021 - 25 sept. 2014 à 11:52
Bonsoir
j'essaye de faire une fonction authentification qui permet de faire une redirection vers une autres page aprés avoir vérifier si l'utilisateur est trouvé dans la base ou non... Mais le probléme içi que dans les deux cas la redirection se fait vers la meme page..
J'utilise oracle jdeveloper 12 c comme éditeur..
PS: dans le fichier faces_config et adfc_config j'ai rien fait .

Içi est la fonction authentification au niveau de sessionBean
  public String 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);


query.getSingleResult();


return ("success") ;


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

}


Ici c'est ma fonction Dologin() au niveau du managedbean pour faire la redirection
public String DoLogin() {
BindingContainer bindings = getBindings();
OperationBinding operationBinding = bindings.getOperationBinding("authentification");
Object result = operationBinding.execute();
System.out.println("## Result = " + result);
if (!operationBinding.getErrors().isEmpty()) {
return "/faces/MainPage.jsf?faces-redirect=true";
}
return "/faces/Login.jsf?faces-redirect=true";

}

en cas l'utilisateur est valide il me dérige toujours ves la page login.JSF est le log m'affiche:
## Result = success
<24 juin 2014 22 h 05 GMT> <Warning> <javax.enterprise.resource.webcontainer.jsf.application> <jsf.viewhandler.requestpath.recursion> <JSF1015 : Le chemin de requête «/faces/Login.jsf» commence par une ou plusieurs occurrences du mappage du préfixe FacesServlet «/faces».>
<24 juin 2014 22 h 05 GMT> <Warning> <oracle.adfinternal.view.faces.renderkit.rich.grid.CellGatherCallback> <ADF_FACES-30194> <Définition de largeur interdite détectée dans panelGridLayout, clientId = "pgl1", ID gridRow = "gr1", ID gridCell = "gc2", largeur = "100%" car la valeur columnSpan n'est pas égale à 1 (columnSpan = "3").>
<24 juin 2014 22 h 05 GMT> <Warning> <oracle.adfinternal.view.faces.renderkit.rich.grid.CellGatherCallback> <ADF_FACES-30194> <Définition de largeur interdite détectée dans panelGridLayout, clientId = "pgl1", ID gridRow = "gr3", ID gridCell = "gc1", largeur = "100%" car la valeur columnSpan n'est pas égale à 1 (columnSpan = "3").>
et dans le cas l'utilisateur est introuvable il me dérige vers login.JSF et le log m'affiche:
javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
at org.eclipse.persistence.internal.jpa.QueryImpl.throwNoResultException(QueryImpl.java:866)
at org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java:447)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:382)
at model.SessionEJBUSERBean.authentification(SessionEJBUSERBean.java:66)
at model.SessionEJBUSER_3qljas_SessionEJBUSERLocalImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:33)
at model.SessionEJBUSER_3qljas_SessionEJBUSERLocalImpl.authentification(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at oracle.adf.model.adapter.bean.BeanDCInvocationHandler.invoke(BeanDCInvocationHandler.java:158)
at oracle.adf.model.adapter.bean.BeanDCInvocationHandler.invokeMethod(BeanDCInvocationHandler.java:69)
at oracle.adf.model.adapter.bean.BeanDCInvocationHandler.invoke(BeanDCInvocationHandler.java:139)
at oracle.adf.model.adapter.bean.BeanDCInvokeMethodHandler.invoke(BeanDCInvokeMethodHandler.java:125)
at oracle.adf.model.adapter.bean.UpdatableBeanDataControl.invokeOperation(UpdatableBeanDataControl.java:600)
at oracle.adf.model.adapter.bean.JavaBeanDataControl.invokeOperation(JavaBeanDataControl.java:388)
at oracle.adf.model.bean.DCBeanDataControl.invokeMethod(DCBeanDataControl.java:477)
at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:266)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1658)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2189)
at oracle.adf.model.bean.DCBeanDataControl.invokeOperation(DCBeanDataControl.java:560)
at oracle.adf.model.adapter.AdapterDCService.invokeOperation(AdapterDCService.java:309)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:751)
at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:407)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:255)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:213)
at view.Login2.DoLogin(Login2.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.el.parser.AstValue.invoke(AstValue.java:254)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:1083)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:402)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:225)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:303)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:208)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:225)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
## Result = null
<24 juin 2014 22 h 06 GMT> <Warning> <javax.enterprise.resource.webcontainer.jsf.application> <jsf.viewhandler.requestpath.recursion> <JSF1015 : Le chemin de requête «/faces/Login.jsf» commence par une ou plusieurs occurrences du mappage du préfixe FacesServlet «/faces».>
<24 juin 2014 22 h 06 GMT> <Warning> <oracle.adfinternal.view.faces.renderkit.rich.grid.CellGatherCallback> <ADF_FACES-30194> <Définition de largeur interdite détectée dans panelGridLayout, clientId = "pgl1", ID gridRow = "gr1", ID gridCell = "gc2", largeur = "100%" car la valeur columnSpan n'est pas égale à 1 (columnSpan = "3").>
<24 juin 2014 22 h 06 GMT> <Warning> <oracle.adfinternal.view.faces.renderkit.rich.grid.CellGatherCallback> <ADF_FACES-30194> <Définition de largeur interdite détectée dans panelGridLayout, clientId = "pgl1", ID gridRow = "gr3", ID gridCell = "gc1", largeur = "100%" car la valeur columnSpan n'est pas égale à 1 (columnSpan = "3").>

1 réponse

Dinath Messages postés 1602 Date d'inscription vendredi 12 avril 2013 Statut Contributeur sécurité Dernière intervention 6 novembre 2021
Modifié par Dinath le 25/09/2014 à 11:54
Salut,

C'est normal pour ton erreur, ça passe dans le catch alors pas de problème.

Au lieu d'utiliser null, utilise "" comme return :)

Edit : Supprime "/faces" de tes String de retour

@Dinath_ - Contributeur Sécurité
0
Rejoignez-nous