0

我正在使用 icefaces 3.x 问题是当我第一次使用 shift+click 选择任何行时出现错误。ice:rowselector 标签的 value 属性给了我错误,这个标签放在第一列

<ice:rowSelector 
     value="#{instantInvoiceDetails.highlighted}"  
     enhancedMultiple="true"    
     selectionListener="#{instantInvoice.selectListener}"   
     toggleOnInput="false"    
     preStyleOnSelection="true">
</ice:rowSelector>

当我第一次使用 shift+click 选择任何行时,错误如下

javax.faces.el.PropertyNotFoundException: javax.el.PropertyNotFoundException: //D:/Error Correction/WorkSpace/InstantInvoicing/WebContent/InstantInvoicing.xhtml @169,279 value="#{instantInvoiceDetails.highlighted}": Target Unreachable, identifier 'instantInvoiceDetails' resolved to null
at javax.faces.component.ValueBindingValueExpressionAdapter.setValue(ValueBindingValueExpressionAdapter.java:150)
at com.icesoft.faces.component.ext.RowSelector.setValue(RowSelector.java:101)
at com.icesoft.faces.component.ext.RowSelector.processDecodes(RowSelector.java:431)
at com.icesoft.faces.component.ext.HtmlDataTable.processKids(HtmlDataTable.java:337)
at com.icesoft.faces.component.ext.HtmlDataTable.iterate(HtmlDataTable.java:278)
at org.icefaces.impl.component.UISeriesBase.processDecodes(UISeriesBase.java:520)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1043)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1043)
at org.icefaces.ace.component.panel.Panel.processDecodes(Panel.java:123)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1043)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1043)
at javax.faces.component.UIForm.processDecodes(UIForm.java:212)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1043)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1043)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:922)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:74)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: javax.el.PropertyNotFoundException: //D:/Error Correction/WorkSpace/InstantInvoicing/WebContent/InstantInvoicing.xhtml @169,279 value="#{instantInvoiceDetails.highlighted}": Target Unreachable, identifier 'instantInvoiceDetails' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:130)
at javax.faces.component.ValueBindingValueExpressionAdapter.setValue(ValueBindingValueExpressionAdapter.java:148)
... 34 more

以下是 InstantInvoiceDetails.java 的代码片段

 private boolean highlighted=false;

        public boolean isHighlighted() {
        return highlighted;
    }

    public void setHighlighted(boolean highlighted) {

        this.highlighted = highlighted;
     }

InstantInvoice.java 的代码片段

    public void selectListener(RowSelectorEvent event) {

            if (sumOfHighRows == null || sumOfHighRows.equals("")) {
                setSumOfHighRows("0");
            }
            //System.out.println(" Enhanced multiple ?"+row.isEnhancedMultiple());
            commentstatus=true;
            System.out.println("size is "+getHighlightedInvoices().size());
            setSumOfHighRows("0");
            getHighlightedInvoices().clear();

            int sumOfH = Integer.parseInt(getSumOfHighRows());
            System.out.println("--1-sumOfH--"+sumOfH);
            for (InstantInvoiceDetails nwIid : invoices) {
                if (nwIid.isHighlighted()) {
                    commentstatus=false;
                    sumOfH += Integer.parseInt(nwIid.getNetChrgAmt());
                    System.out.println("--2-sumOfH--"+sumOfH);
                    getHighlightedInvoices().add(nwIid);
                    System.out.println(getHighlightedInvoices().size());
                    if(getHighlightedInvoices().size()==0)
                    {
                        commentstatus=true;
                    }
                    setSumOfHighRows(Integer.toString(sumOfH));                
                }             

            }
        }

    }
4

0 回答 0