-
1. Re: Rich Columns and ajaxKeys
nbelaevski Dec 21, 2009 5:38 PM (in response to mattc1)Hi Matt,
Can you please post page code?
BTW, why use CR1 when SR1 has already been released?
Message was edited by: Nick Belaevski
-
2. Re: Rich Columns and ajaxKeys
mattc1 Dec 22, 2009 12:25 PM (in response to nbelaevski)Hello Nick.
Actually I am seeing something pretty strange. Here is a stripped down code snipped from our code:
{code}
<rich:columns var="displaycolumn" value="#{myListCriteriaController.myListResultColumns}">
<f:facet name="header">
<h:outputText value="#{displaycolumn.columnHeader}"/>
</f:facet>
<%-- String Value --%>
<h:panelGroup rendered="#{row.cells[displaycolumn.columnIndex].isBasicStringFormat || row.cells[displaycolumn.columnIndex].isEmailStringFormat >
<h:inputText id="textEditControl" value="#{row.cells[displaycolumn.columnIndex].value}" />
<h:outputText value="#{rich:findComponent('textEditControl').value}"></h:outputText>
</h:panelGroup></rich:columns>
{code}
Basically this code will create 1 to N columns with a text box in the column. Then I added an outputText field just to dump back out the text value for that column. What I am seeing is that the outputText always outputs the text for the first column even though the input text is correct for that column. Is there an issue with using rich:findComponent or rich:clientId in a rich:columns tag?
-matt
-
3. Re: Rich Columns and ajaxKeys
ilya_shaikovsky Dec 23, 2009 4:51 AM (in response to mattc1)actually rich:* functions looks through all the viewRoot and returns the first component found with passed client id. So it will be always the first component for this case (many inputs in iteration component with the same id.) -
4. Re: Rich Columns and ajaxKeys
mattc1 Dec 23, 2009 10:01 AM (in response to ilya_shaikovsky)Are there any options to accomplish what I was trying to do with the rich:* functions?
-matt
-
5. Re: Rich Columns and ajaxKeys
vc5 Dec 23, 2009 12:44 PM (in response to mattc1)instead of using generic names like this:
id="textEditControl"
try individualizing them:
id="textEditControl#{rowIndex}-#{columnIndex}"
-v
-
6. Re: Rich Columns and ajaxKeys
mattc1 Dec 23, 2009 1:41 PM (in response to vc5)I don't think id's can have an expression in them. Thanks for the suggestion though.
-matt
-
7. Re: Rich Columns and ajaxKeys
vc5 Dec 23, 2009 1:58 PM (in response to mattc1)it works for me... thx for not even trying >_< -
8. Re: Rich Columns and ajaxKeys
mattc1 Dec 23, 2009 2:04 PM (in response to vc5)I did try and got an exception saying expression are not allowed in the id attribute. Here is the code I tested:
<h:inputText id="textEditContro#{rowIndex}" value="#{bean.value}" />
If you have a working example pass it along.
-matt
-
9. Re: Rich Columns and ajaxKeys
vc5 Dec 23, 2009 2:14 PM (in response to mattc1)this works fine for me:
<h:inputText id="helloField-#{1}" value="hello" />
generates this HTML:
<input type="text" value="hello" name="j_id19:helloField-1" id="j_id19:helloField-1"/>
i'm using 3.3.2.SR1, what version do you have?
-
10. Re: Rich Columns and ajaxKeys
mattc1 Dec 23, 2009 2:38 PM (in response to vc5)I am on the same. My page declares like this:
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>Do you see anything wrong with that?
-
11. Re: Rich Columns and ajaxKeys
vc5 Dec 23, 2009 3:03 PM (in response to mattc1)please post your exception stacktrace saying "expression not allowed in id attribute"... -
12. Re: Rich Columns and ajaxKeys
mattc1 Dec 23, 2009 3:06 PM (in response to vc5)org.apache.jasper.JasperException: /test-create.jsp(1066,1) According to TLD or attribute directive in tag file, attribute id does not accept any expressions
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1120)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:820)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2359)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2409)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:839)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2359)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2409)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:839)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2359)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2409)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2415)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2359)
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1735)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:184)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.salesgene.common.filters.UserSessionFilter.doProcessing(UserSessionFilter.java:382)
at com.salesgene.common.filters.UserSessionFilter.doFilter(UserSessionFilter.java:188)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.salesgene.common.filters.LandslideContextFilter.doFilter(LandslideContextFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source) -
13. Re: Rich Columns and ajaxKeys
shadowcreeper Dec 23, 2009 3:55 PM (in response to vc5)Using Facelets, EL is valid (almost) everywhere. Using only plain JSF, it is illegal to put EL in some attributes ("id" is one of those attributes). -
14. Re: Rich Columns and ajaxKeys
eugenbesel Feb 2, 2010 4:13 PM (in response to shadowcreeper)hello shadow,
I also have the same problem.
I use JSF 1.2 and Richfaces 3.3.2 CR1.
my code is like this:
<rich:extendedDataTable value="#{searchModul.columnData}" var="data" width="500px" height="100px" sortMode="single" selectionMode="multi" >
<f:facet name="header">
<h:outputText value="#{searchModul.tableHeader}"></h:outputText>
</f:facet>
<rich:columns id="#{data[ind]}" value="#{searchModul.columns}" var="col" index="ind" sortBy="#{data[ind]}">
<f:facet name="header">
<h:outputText value="#{col}"/>
</f:facet>
<h:outputText value="#{data[ind]}"></h:outputText>
</rich:columns>
</rich:extendedDataTable>what should I use, that the Exception doesn't occurs???
sorry, but I didnt understand your answer.