Redirection d'une Page JSF [Résolu]

- - Dernière réponse :  omarkalkaf - 18 mars 2014 à 22:45
Bonjour,
j'essaye de faire une redirection d'une page JSF lors d'un click sur le bouton login... Mais je sais pas comment la faire.. quelqu'un peut m'aider???
j'utilise j2ee sous Jdeveloper
voila ma fonction Login au niveau de 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;
}

}

Mon backing bean est le suivant
 public String loginaction() {

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

Pour la partie faces-config j'ai fait le suivant:

<?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>


pour le code de la page 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>
Afficher la suite 

Votre réponse

6 réponses

Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
0
Merci
Salut,

Tout a l'air correct, essayes juste d'ajouter un espcade entre le t et le / dans le redirect pour respecter la syntaxe :
<redirect />


Et les
return null;
, c'est une mauvaise idée

Qu'est ce qui ne marche pas ? Qu'est ce qui se passe ? Que voudrais tu qu'il se passe ?
Commenter la réponse de cs_Julien39
0
Merci
c'est fait, alors j'ai changer le null par return ("fail")
lorsque j'exécute il m'affiche l'erreur suivante
JBO-25077: Nom id introuvable dans l'objet donné : success.
Commenter la réponse de omarkalkaf
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
0
Merci
Une erreur JBO signifie que le système n'arrive pas à accéder à une propriété de ta page :
JBO-25077: Name {0} not found in the given object: {1}.
Cause: An invalid name was passed in an expression.
Action: Fix the expression by passing in a correct name for a property.
Level: 1

Type: ERROR

Impact: Programmatic

Est ce que tu es certain que d'identifiant /untitled2.jsf existe bien ?

disabled="#{!bindings.authentification.enabled}"
Est ce que tu es certain que tu peux ici utiliser un "!" ? Peut être que oui, ca fait quelques années que je n'ai pas fait de JSF...

Et dans tous les cas, les balises fermantes doivent être précédées d'un esapce :
<redirect />
et là aussi :
action="#{backingBeanScope.backing_login.loginaction}" />
Commenter la réponse de cs_Julien39
0
Merci
oui bien sur /untitled2.jsf est ma page cible
Commenter la réponse de omarkalkaf
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
0
Merci
J'ai beau chercher, je ne trouve pas, et l'erreur n'est pas vraiment documentée sur internet.

Tu peux me donner la trace complète stp ?

Tu as essayé de virer le redirect ?

Et de passer ton scope à request ?
Commenter la réponse de cs_Julien39
0
Merci
Voila ce que m'affiche sur le console


oracle.jbo.expr.JIEvalException: JBO-25077: Nom id introuvable dans l'objet donné : success.
at oracle.jbo.common.JboBeanUtils.getProperty(JboBeanUtils.java:90)
at oracle.jbo.common.JboBeanUtils.getOrTypePropertyInMapOrBean(JboBeanUtils.java:253)
at oracle.jbo.common.JboBeanUtils.getPropertyInMapOrBean(JboBeanUtils.java:215)
at oracle.adf.model.bean.DCDataRow.getAttributeInternal(DCDataRow.java:381)
at oracle.jbo.server.ViewRowImpl.getKey(ViewRowImpl.java:680)
at oracle.jbo.server.ViewRowCache.addWithCheck(ViewRowCache.java:385)
at oracle.jbo.server.ViewRowCache.add(ViewRowCache.java:410)
at oracle.jbo.server.QueryCollection.addRowToColl(QueryCollection.java:3850)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3925)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2443)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5414)
at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2986)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2842)
at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3083)
at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:3060)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1438)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1198)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2825)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2802)
at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1631)
at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:3832)
at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:11214)
at oracle.adf.model.binding.DCIteratorBinding.internalGetCurrentRowInBinding(DCIteratorBinding.java:2363)
at oracle.jbo.uicli.binding.JUIteratorBinding.internalGetCurrentRowInBinding(JUIteratorBinding.java:526)
at oracle.adf.model.binding.DCIteratorBinding.getCurrentRow(DCIteratorBinding.java:2308)
at oracle.adf.model.binding.DCIteratorBinding.prepareCurrentRow(DCIteratorBinding.java:682)
at oracle.adf.model.binding.DCIteratorBinding.setupRSIstate(DCIteratorBinding.java:866)
at oracle.adf.model.binding.DCIteratorBinding.refreshControlAndNotifyDCE(DCIteratorBinding.java:723)
at oracle.adf.model.binding.DCIteratorBinding.rangeRefreshed(DCIteratorBinding.java:928)
at oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding.initSourceRSI(JUMethodIteratorDef.java:727)
at oracle.adf.model.binding.DCIteratorBinding.callInitSourceRSI(DCIteratorBinding.java:1741)
at oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding.access$000(JUMethodIteratorDef.java:119)
at oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding$1.afterInvokeMethod(JUMethodIteratorDef.java:262)
at oracle.adf.model.binding.DCInvokeMethod.notifyAfterInvokeMethod(DCInvokeMethod.java:918)
at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:281)
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.backing.Login.loginaction(Login.java:112)
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.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:202)
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)
Commenter la réponse de omarkalkaf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.