[jboss-user] [JBoss Seam] - HelloWorld-Ajax with Facelets

hispeedsurfer do-not-reply at jboss.com
Thu Dec 21 06:56:54 EST 2006


Hello,

running the helloworld4 example with .jsp from JBoss Seam Book was successful.

Here the code:

ManagerAction.java
int MAX_RESULTS_RETURNED = 10;
  |   String [] popularNames = new String [] {
  |       "Gavin King", "Thomas Heute", "Michael Yuan",
  |       "Norman Richards", "Bill Burke", "Marc Fleury"
  |   };
  |   public void suggestName (FacesContext context,
  |                            String partialName, CompletionResult result) {
  | 
  |     System.out.println("Auto Complete method is called");
  | 
  |     int totalNum = 0;
  |     if (partialName.length() > 0) {
  |       for (int i=0; i<popularNames.length; i++) {
  |         if (popularNames.toLowerCase().indexOf(partialName.toLowerCase())!=-1
  |             && totalNum < MAX_RESULTS_RETURNED) {
  | 
  |           result.addItem(popularNames);
  |           totalNum++;
  |         }
  |       }
  |     } else {
  |       for (int i=0; i<MAX_RESULTS_RETURNED &&
  |                    i<popularNames.length; i++) {
  |         result.addItem(popularNames);
  |       }
  |     }
  | 
  |   }

hello.jsp
<h:form>
  | 
  | <h:panelGrid columns="2">
  |   <h:outputText value="Your Name" />
  |   <h:panelGroup>
  |     <ui:autoComplete
  |             size="15" id="name"
  |             completionMethod="#{manager.suggestName}"
  |             value="#{greeter.name}"
  |             required="false" />
  |     <h:message for="name" />
  |   </h:panelGroup>

Now, when I use Facelets for a similar example with same Bean-Code I receive the Error:
ELException: /hello2.xhtml: Bean: org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$73f8c9e7, property: suggestName
11:29:38,603 ERROR [STDERR] 21.12.2006 11:29:38 com.sun.facelets.FaceletViewHandler handleRenderException
  | SCHWERWIEGEND: Error Rendering View[/hello2.xhtml]
  | javax.el.ELException: /hello2.xhtml: Bean: org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$73f8c9e7, property: suggestName
  | 	at com.sun.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:53)
  | 	at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
  | 	at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:433)
  | 	at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419)
  | 	at org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:75)
  | 	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
  | 	at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442)
  | 	at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216)
  | 	at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98)
  | 	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:242)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
  | 	at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
  | 	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:580)
  | 	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
  | 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 	at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:32)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 	at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  | 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  | 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
  | 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  | 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  | 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
  | 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  | 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  | 	at java.lang.Thread.run(Thread.java:619)
  | 

here the code from hello.xhtml
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  |                              "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  | <ui:composition xmlns="http://www.w3.org/1999/xhtml"
  |                 xmlns:s="http://jboss.com/products/seam/taglib"
  |                 xmlns:ui="http://java.sun.com/jsf/facelets"
  |                 xmlns:f="http://java.sun.com/jsf/core"
  |                 xmlns:h="http://java.sun.com/jsf/html"
  |                 template="layout/template.xhtml"
  |                 xmlns:bp="http://java.sun.com/blueprints/ui/14">
  |                        
  | <ui:define name="body">
  | 
  |     <h1>hello2</h1>
  |     <p>Generated form page</p>
  |     
  |     <h:messages globalOnly="true" styleClass="message"/>
  |     
  |     <h:form id="hello2">
  |         <div class="dialog">
  |         <h:panelGrid columns="2">
  |         	<h:outputText value="Your name"/>
  |         	<h:panelGroup>
  |         		<bp:autoComplete
  | 		            size="15" id="name" 
  | 		            completionMethod="#{hello.suggestName}"
  | 		            value="#{hello.value}"
  | 		            required="false" />
  |         		<h:message for="name"></h:message>
  |         	</h:panelGroup>
  |         </h:panelGrid></div>
  |     </h:form>
  |     
  | </ui:define>
  | 
  | </ui:composition>
  | 

The suggestName method is declared in Hello.java interface and HelloBean.java

What I have ToDo to get this running with Facelets?


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3995561#3995561

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3995561



More information about the jboss-user mailing list