ссылка на команду не работает внутри страницы со строкой запроса URL - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть страница, которая перенаправляется с использованием выходной ссылки со строкой запроса, например,

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

В gallery.xhtml у меня есть ссылка на команду

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

А также я вызывал функцию в получателе QueryString "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)

затем страница перенаправляетсяна ту же выходную ссылку без запроса String http://localhost:8070/ChennaiVolunteer/faces/gallery.xhtml

1 Ответ

2 голосов
/ 11 февраля 2012

Я не уверен, почему именно вы получили это исключение, и не полезно не показывать SSCCE, но на основе трассировки стека вы используете MyFaces и у вас есть эта ссылка внутри <h:dataTable>, и исключение произошло при создании управляемый компонент, связанный со значением таблицы. Компонент bean, похоже, находится в области запроса и установка управляемого свойства не удалась.

В трассировке стека должна быть еще одна первопричина, которая подробно расскажет вам, что именно не удалось установить при настройке свойства управляемого компонента.

В зависимости от точных функциональных требований и того, как вы до сих пор разрабатывали страницу, я могу придумать 2 решения:

  1. Поместите компонент в область просмотра вместо области запроса. Таким образом, боб не будет одеваться и воссоздан каждый раз, когда вы взаимодействуете с одним и тем же видом. Он просто будет жить, пока вы взаимодействуете с одним и тем же видом.

    @ManagedBean
    @ViewScoped
    public class ListingActivityData {
        // ...
    }
    
  2. Передать параметр запроса в последующий запрос по <f:param>.

    <p:commandLink ...>
        <f:param name="usrId" value="#{param.usrId}" />
    </p:commandLink>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...