[
http://issues.apache.org/jira/browse/TAPESTRY-1076?page=comments#action_12430526
]
Norbert Sándor commented on TAPESTRY-1076:
------------------------------------------
I think that such problems should be discussed on the user mailing list first,
not immediately on the JIRA.
Your problem is that @FieldLabel's "field" is of type IFormComponent but you
try to pass a BaseComponent to it. That's why you get the exception because
BaseComponent doesn't implement IFormComponent.
Try something like:
<form jwcid="[EMAIL PROTECTED]">
<label jwcid="@FieldLabel" field="ognl:comp1.components.TEXTFIELD"/>
<input jwcid="[EMAIL PROTECTED]" displayName="Field description"
value="ognl:data" />
</form>
where TEXTFIELD is the ID of the @TextField component in your custom
@myTextField component (I guess this @myTextField is the same component as in
your previous jira post).
Or - this is what I'm doing in my applications - subclass TextField instead of
embedding it into a custom component.
Regards,
Norbi
> Wraped form components can't be attached to FieldLabels
> -------------------------------------------------------
>
> Key: TAPESTRY-1076
> URL: http://issues.apache.org/jira/browse/TAPESTRY-1076
> Project: Tapestry
> Issue Type: Bug
> Components: Core
> Affects Versions: 4.1
> Reporter: Pedro Viegas
> Assigned To: Jesse Kuhnert
> Priority: Minor
>
> I have a component witch wraps a tapestry "TextField".
> Something like this just as an example...
> .html
> <html>
> <body jwcid="$content$">
> <input jwcid="[EMAIL PROTECTED]"/>
> </body>
> </html>
> .jwc
> <?xml version="1.0"?>
> <!DOCTYPE component-specification PUBLIC
> "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
> "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
> <component-specification allow-body="no" allow-informal-parameters="yes">
> </component-specification>
> If I use this component with a Label in a form like this...
> <form jwcid="[EMAIL PROTECTED]">
> <label jwcid="@FieldLabel" field="component:comp1"/>
> <input jwcid="[EMAIL PROTECTED]" displayName="Field description"
> value="ognl:data" />
> </form>
> I get the following error:
> "org.apache.tapestry.BindingException
> Error converting value for template parameter field: No type converter for
> type org.apache.tapestry.form.IFormComponent is available."
> Seems like it need the form component and is trying to get it as the parent
> of the inner TextField component, witch is not the form but my wrapper
> component. At least this is my guess.
> The full stacktrace...
> *
> org.apache.tapestry.coerce.ValueConverterImpl.coerceValue(ValueConverterImpl.java:105)
> *
> $ValueConverter_10d41ea6164.coerceValue($ValueConverter_10d41ea6164.java)
> *
> org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:91)
> * $FieldLabel_330.getField($FieldLabel_330.java)
> * org.apache.tapestry.valid.FieldLabel.renderComponent(FieldLabel.java:52)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> *
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491)
> *
> org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> *
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491)
> *
> org.apache.tapestry.form.FormSupportImpl.render(FormSupportImpl.java:495)
> * org.apache.tapestry.form.Form.renderComponent(Form.java:219)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> *
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491)
> *
> org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> *
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491)
> * org.apache.tapestry.html.Body.renderComponent(Body.java:151)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> *
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:491)
> * org.apache.tapestry.html.Shell.renderComponent(Shell.java:64)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:131)
> * org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:676)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:129)
> * org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:248)
> *
> org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:402)
> *
> org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:117)
> *
> org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
> *
> $ResponseRenderer_10d41ea6195.renderResponse($ResponseRenderer_10d41ea6195.java)
> *
> $ResponseRenderer_10d41ea6194.renderResponse($ResponseRenderer_10d41ea6194.java)
> * org.apache.tapestry.engine.HomeService.service(HomeService.java:68)
> * $IEngineService_10d41ea61fc.service($IEngineService_10d41ea61fc.java)
> *
> org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(EngineServiceInnerProxy.java:77)
> *
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
> *
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241)
> *
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
> *
> $WebRequestServicer_10d41ea61dd.service($WebRequestServicer_10d41ea61dd.java)
> *
> $WebRequestServicer_10d41ea61dc.service($WebRequestServicer_10d41ea61dc.java)
> *
> $WebRequestServicer_10d41ea61d9.service($WebRequestServicer_10d41ea61d9.java)
> *
> $WebRequestServicer_10d41ea61d8.service($WebRequestServicer_10d41ea61d8.java)
> *
> org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
> *
> $ServletRequestServicer_10d41ea61bf.service($ServletRequestServicer_10d41ea61bf.java)
> *
> $ServletRequestServicer_10d41ea61be.service($ServletRequestServicer_10d41ea61be.java)
> *
> org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
> *
> $ServletRequestServicerFilter_10d41ea61bb.service($ServletRequestServicerFilter_10d41ea61bb.java)
> *
> $ServletRequestServicerFilter_10d41ea61ba.service($ServletRequestServicerFilter_10d41ea61ba.java)
> *
> $ServletRequestServicer_10d41ea61c0.service($ServletRequestServicer_10d41ea61c0.java)
> *
> org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
> *
> $ServletRequestServicerFilter_10d41ea61b9.service($ServletRequestServicerFilter_10d41ea61b9.java)
> *
> $ServletRequestServicerFilter_10d41ea61b8.service($ServletRequestServicerFilter_10d41ea61b8.java)
> *
> $ServletRequestServicer_10d41ea61c0.service($ServletRequestServicer_10d41ea61c0.java)
> *
> org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
> *
> $ServletRequestServicerFilter_10d41ea61bd.service($ServletRequestServicerFilter_10d41ea61bd.java)
> *
> $ServletRequestServicerFilter_10d41ea61bc.service($ServletRequestServicerFilter_10d41ea61bc.java)
> *
> $ServletRequestServicer_10d41ea61c0.service($ServletRequestServicer_10d41ea61c0.java)
> *
> $ServletRequestServicer_10d41ea61b3.service($ServletRequestServicer_10d41ea61b3.java)
> *
> $ServletRequestServicer_10d41ea61b2.service($ServletRequestServicer_10d41ea61b2.java)
> *
> org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
> *
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:104)
> * javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> * javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> *
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> *
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> *
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
> *
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> *
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> *
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> *
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> *
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
> *
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
> *
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
> *
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> *
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> *
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> *
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> *
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> *
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> *
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> *
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
> * java.lang.Thread.run(Thread.java:595)
> If a full test case is required I could provide one.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]