[jboss-user] [JBoss Seam] - Help, <s:convertEntity /> problem
nicoliniyo
do-not-reply at jboss.com
Thu Dec 20 10:22:21 EST 2007
I was writting the code for and app to add a record to the database:
(I've translated the code from spanish, asume the code has no typo)
this is a form to add a currency, the currency has a country mapped to it.
The xhtml form uses a tempate with <s:vallidateAll>
Here the monedaNueva.xhtml:
| <?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
| <html xmlns="http://www.w3.org/1999/xhtml"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:a4j="http://richfaces.org/a4j"
| xmlns:rich="http://richfaces.org/rich">
| <f:loadBundle basename="messages" var="m"/>
| <ui:composition template="/WEB-INF/template.xhtml">
| <ui:define name="title" value="#{m['TIT_PRIN_CREA_currency']}"></ui:define>
| <body>
|
| <ui:define name="body">
| <fieldset><h1><legend jsfc="h:outputText" value="#{m['E_CONTEN_DATOS_currency']}"></legend></h1>
| <s:decorate template="editar.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="code" value="#{m['E_code']}"></label>
| </ui:define>
| <input jsfc="h:inputText" type="text" id="code" size="10" value="#{currency.code}"/>
| </s:decorate>
| <br/><br/>
| <s:decorate template="editar.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="name" value="#{m['E_name']}"></label>
| </ui:define>
| <input jsfc="h:inputText" value="#{currency.name}" type="text" id="name" size="50" checked="checked" layout = "lineDirection"/>
| </s:decorate>
| <br/><br/>
| <s:decorate template="editar.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="codeISO" value="#{m['E_COD_ISO']}"></label>
| </ui:define>
| <input jsfc="h:inputText" value="#{currency.codeIso}" type="text" id="codeISO" size="10" />
| </s:decorate>
| <br/><br/>
| <s:decorate template="editar.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="abreviacion" value="#{m['E_ABREV']}"></label>
| </ui:define>
| <input jsfc="h:inputText" value="#{currency.abreviacion}" type="text" id="abreviacion" size="10" />
| </s:decorate>
| <br/><br/>
| <s:decorate template="editar.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="country" value="#{m['E_country']}"></label>
| </ui:define>
|
| <h:selectOneMenu id="country" value="#{currency.country}">
| <s:selectItems value="#{countryLista}" var="aCountry" label="#{aCountry.name}" />
|
| </h:selectOneMenu>
| <s:convertEntity />
| </s:decorate>
| </fieldset>
| </ui:define>
| <ui:define name="BarraEspecifica">
| <h:commandButton value="#{m['BOTON_GRABAR']}" action="#{currencyAdministrador.save}"/>
| <input type="submit" jsfc="h:commandButton" value="#{m['BOTON_GRABAR']}" action="#{currencyAdministrador.save}" view="/currencyList.xhtml" propagation="begin"/>
| <input type="submit" jsfc="h:commandButton" value="#{m['BOTON_CANCELAR']}" action="#{currencyAdministrador.cancel}" view="/currencyList.xhtml" propagation="end"/>
| </ui:define>
|
| </body>
| </ui:composition>
| </html>
|
| ...
| <s:decorate template="edit.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="country" value="#{m['E_COUNTRY']}"></label>
| </ui:define>
|
| <h:selectOneMenu id="country" value="#{currency.country}">
| <s:selectItems value="#{countryList}" var="aCountry" label="#{aContry.name}" />
|
| </h:selectOneMenu>
|
| </s:decorate>
| ...
And an error came out:
| Conversion Error setting value ....Country at qw12... 'null Converter'.
|
So I've added the <s:convertEntity /> under the <s:selectItems line:
| ...
| <s:decorate template="edit.xhtml">
| <ui:define name="label">
| <label jsfc="h:outputLabel" for="country" value="#{m['E_COUNTRY']}"></label>
| </ui:define>
|
| <h:selectOneMenu id="country" value="#{currency.country}">
| <s:selectItems value="#{countryList}" var="aCountry" label="#{aContry.name}" />
| <s:convertEntity />
| </h:selectOneMenu>
|
| </s:decorate>
| ...
After I've added the <s:convertEntity /> I try enter the xhtml page and the following error comes out:
| com.sun.facelets.tag.TagException: /monedaNueva.xhtml @55,48 <s:convertEntity> Parent not an instance of ValueHolder: org.jboss.seam.ui.component.html.HtmlValidateAll at 7d734b
| at com.sun.facelets.tag.jsf.ConvertHandler.apply(ConvertHandler.java:93)
| at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
| at com.sun.facelets.tag.ui.DecorateHandler.apply(DecorateHandler.java:122)
| at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:310)
| at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:280)
| at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
| at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
| at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
| at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
| at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:119)
| at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
| at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
| at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
| at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
| at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
| at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:144)
| at com.sun.facelets.tag.ui.DecorateHandler.apply(DecorateHandler.java:105)
| at org.jboss.seam.ui.handler.DecorateHandler.applyNextHandler(DecorateHandler.java:32)
| at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
| at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
| at com.sun.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:64)
| at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:131)
| at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:310)
| at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:280)
| at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
| at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
| at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
| at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
| at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
| at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
| at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:109)
| at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
| at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
| at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
| at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
| at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
| at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
| at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
| at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:144)
| at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
| at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
| at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
| at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
| at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:524)
| at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:567)
| at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
| at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
| at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:307)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
| 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:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
|
can't solve it so far.
Any ideas? (in advance, thanks for your time)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114677#4114677
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4114677
More information about the jboss-user
mailing list