2011-02-13 6 views
0

У меня есть следующие правила навигации, определенные в faces-config.xml. Я могу перейти на вторую страницу, однако со второй страницы на первую, я не могу перемещаться. Что может быть причиной, что-то не так с правилами навигации? Я бы хотел сделать навигацию без перенаправления.Навигация по страницам JSF не работает

JSF версия 1,1

<navigation-rule> 
     <from-view-id>/first.jspx</from-view-id> 
     <navigation-case> 
     <from-action>#{bean.setSelectedItem}</from-action> 
      <from-outcome>form1</from-outcome> 
      <to-view-id>/second.jspx</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>/second.jspx</from-view-id> 
     <navigation-case> 
      <from-action>#{bean2.testBack}</from-action> 
      <from-outcome>form2</from-outcome> 
      <to-view-id>/first.jspx</to-view-id> 
     </navigation-case> 
    </navigation-rule> 

От поджигатель я мог видеть, за исключением следующего

java.lang.RuntimeException: no message available 

Благодаря

Update 1

код в моем second.jspx вернуться обратно to first.jspx

<ice:form id="form2">  
    <ice:commandLink action="#{bean.testBack}"> 
     <h:outputText value="Test" /> 
</ice:commandLink> 
</ice:form> 

код, когда я нажимаю действие

public String testBack() { 

    try {    
     logger.info("invoked");  

    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
     return "form2"; 
     } 

StackTrace

java.lang.RuntimeException: no message available 
    at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:173) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 
    at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:719) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:119) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) 
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) 
    at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230) 
    at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33) 
    at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831) 
    at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) 
    at java.lang.Thread.run(Thread.java:595) 
Caused by: java.lang.NullPointerException 
    at com.icesoft.faces.context.DOMResponseWriter.enhanceAndFixDocument(DOMResponseWriter.java:315) 
    at com.icesoft.faces.context.DOMResponseWriter.endDocument(DOMResponseWriter.java:186) 
    at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:496) 
    at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:153) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87) 
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) 
    at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:16) 
    at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:114) 
    at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:66) 
    at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:28) 
    at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24) 
    at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160) 
    at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:42) 
    at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:18) 
    at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63) 
    at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:62) 
    at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:22) 
    at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) 
    at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:153) 
+0

Ваши правила в порядке. Пожалуйста, напишите немного подробнее о коде и стеке исключения (которое вы должны увидеть в журналах сервера, а не в Firebug). – BalusC

+0

Код @BalusC и stacktrace, добавленные выше. – user75ponic

+0

Это особая ошибка/проблема IceFaces. Я добавлю тег 'icefaces'. – BalusC

ответ

4

вы можете попробовать это: (я скопировал это из моего проекта так, пожалуйста, измените значения ;-))

<navigation-rule> 
     <from-view-id>/pages/registration.jspx</from-view-id> 
     <navigation-case> 
      <from-outcome>next</from-outcome> 
      <to-view-id>/pages/registration.jspx</to-view-id> 
     </navigation-case> 
<navigation-rule> 

или есть конкретные причины, по которым вы используете этот тег?

<from-action>#{bean.setSelectedItem}</from-action> 
+1

Да без # {bean.setSelectedItem} Это сработало. Спасибо за обновление. – user75ponic

Смежные вопросы