2012-02-11 15 views
0

我在其中使用的outputLink的查詢字符串重定向,爲前一個頁面有,命令鏈接是不是一個頁面內正與URL查詢字符串

http://localhost:8070/ChennaiVolunteer/faces/gallery.xhtml?usrId=22 

在gallery.xhtml,我有一個命令鏈接

<p:commandLink value="List of Activities" action="#{listingActivityData.listofactivities}" ajax="false"> 
        </p:commandLink> 

,也是我也打電話查詢字符串「usrId」的吸氣器的功能

每當我點擊了commandLink我有一個例外,如下:

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/ChennaiVolunteer] threw exception [java.lang.IllegalArgumentException] with root cause 
    java.lang.IllegalArgumentException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at javax.el.BeanELResolver.setValue(BeanELResolver.java:135) 
at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:83) 
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.setValue(FacesCompositeELResolver.java:182) 
at org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:349) 
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:169) 
at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.createManagedBean(ManagedBeanResolver.java:303) 
at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:266) 
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67) 
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142) 
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:65) 
at org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:96) 
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67) 
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142) 
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71) 
at org.apache.el.parser.AstValue.getValue(AstValue.java:147) 
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) 
at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85) 
at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243) 
at javax.faces.component.UIData.getValue(UIData.java:1153) 
at javax.faces.component.UIData.createDataModel(UIData.java:1101) 
at javax.faces.component.UIData.getDataModel(UIData.java:1078) 
at javax.faces.component.UIData.setRowIndex(UIData.java:514) 
at javax.faces.component.UIData.visitTree(UIData.java:1342) 
at javax.faces.component.UIComponent.visitTree(UIComponent.java:770) 
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991) 
at javax.faces.component.UIComponent.visitTree(UIComponent.java:770) 
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991) 
at javax.faces.component.UIComponent.visitTree(UIComponent.java:770) 
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991) 
at org.apache.myfaces.lifecycle.DefaultRestoreViewSupport.processComponentBinding(DefaultRestoreViewSupport.java:84) 
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:142) 
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) 
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

然後重定向到同一個outputLink的無查詢字符串 http://localhost:8070/ChennaiVolunteer/faces/gallery.xhtml

回答

2

我不知道到底爲什麼你得到這個例外,並沒有顯示出SSCCE這是沒有幫助的,但是基於堆棧跟蹤頁面您正在使用MyFaces,並且您在<h:dataTable>中有此鏈接,並且在創建與表值相關聯的託管bean時發生異常。該bean似乎是請求作用域,並且設置託管屬性失敗。

在堆棧跟蹤中還應該有另一個根本原因,它會詳細告訴您在設置託管bean屬性時究竟發生了什麼失敗。

根據具體功能要求,你是如何設計的頁面,到目前爲止,我能想到的2個解決方案:

  1. 把豆在視圖範圍內,而不是請求範圍。這樣,每當你使用同一個視圖進行交互時,這個bean就不會被垃圾和重新創建。只要你以相同的觀點進行互動,它就會生活。

    @ManagedBean 
    @ViewScoped 
    public class ListingActivityData { 
        // ... 
    } 
    
  2. <f:param>傳遞所述請求參數的後續請求。

    <p:commandLink ...> 
        <f:param name="usrId" value="#{param.usrId}" /> 
    </p:commandLink> 
    
相關問題