动态生成表格,但是点击页面的取消按钮后报如下错误:
严重: Servlet.service() for servlet Faces Servlet threw exception
javax.el.ELException: /dictionary/dictionaryOperation.xhtml @12,121 binding="#{dictionary.dictionaryOperationBean.grid}": 类型com.btcms.dictionary.DictionaryOperationBean的'grid'属性不可写。
>>> #{dictionary.dictionaryOperationBean.grid}
at __expression__(0)
-------------------------
at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:101)
at org.operamasks.faces.lifecycle.RestoreView.updateValueBindings(RestoreView.java:140)
at org.operamasks.faces.lifecycle.RestoreView.execute(RestoreView.java:96)
at org.operamasks.faces.lifecycle.LifecycleImpl.doPhase(LifecycleImpl.java:135)
at org.operamasks.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:83)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.operamasks.faces.webapp.filter.DefaultSuffixRedirector.doFilter(DefaultSuffixRedirector.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    后台的代码如下:
     private HtmlPanelGrid grid = null;
        public HtmlPanelGrid getGrid(){
         grid = new HtmlPanelGrid();
         grid.setId("grid");
         grid.setRendered(true);
         List list = grid.getChildren();
         List input = getHtmlInputText();
         List label = getHtmlOutputLabel();
         List button = getHtmlCommandButton();
         for(int i = 0;i < label.size();i ++){
         for(int j = 0;j < input.size();j ++){
         list.add(label.get(i));
         list.add(input.get(i));
         }
         }
         for(int i = 0;i < button.size();i ++){
         list.add(button.get(i));
         }
         return grid;
        }
    页面代码如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE HTML PUBLIC "" "">
    <f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
    xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout"
    xmlns:h="http://java.sun.com/jsf/html" xmlns:ajax="http://www.apusic.com/jsf/ajax"
    renderKitId="AJAX">
    <w:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </w:head>
    <w:page title="Insert title here">
    <w:form id = "form1">
    <h:panelGrid binding="#{dictionary.dictionaryOperationBean.grid}" columns="2" style="readOnly:false" rendered="true"/> </w:form>
    </w:page>
    </f:view>谢谢各位,很急……