[
https://issues.apache.org/jira/browse/TRINIDAD-1355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660771#action_12660771
]
Tomas Havelka commented on TRINIDAD-1355:
-----------------------------------------
You can modify your template to meet "bogus" solution better. See below:
<tr:form defaultCommand="#{empty(pDefaultCommand) ? 'this_is_bogus' :
pDefaultCommand}">
Or you can attach your own facelet function to decide which default command to
attach:
<jsp:root xmlns:cf="http://your.custom.taglib/functions">
....
<tr:form defaultCommand="#{cf:myDefaultCommand(pDefaultCommand)}">
....
</jsp:root>
public static String myDefaultCommand(String defaultCommand)
{
return ((defaultCommand == null) || (defaultCommand.trim().equals(""))) ?
"this_is_bogus" : defaultCommand;
}
> tr:form defaultCommand won't work with empty value
> --------------------------------------------------
>
> Key: TRINIDAD-1355
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1355
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Facelets
> Reporter: Caius Gran
>
> The problem is tr:form's defaultCommand attribute throws an exception if it's
> left empty.
> And this is a problem at least for my case where I try to make a Facelets
> template with a parameterized
> defaultCommand attribute. Whenever I was to use the template, I would have to
> put something into
> the defaultCommand parameter even if I didn't need defaultCommand for that
> particular instance.
> Basically I must give it a bogus value to make it work (see "this_is_bogus"
> below).
> I'd like to have it work without explicit ui:param.
> I encountered it with Trinidad 1.0.8 and didn't try other versions.
> Thanks!
> THE EXCEPTION:
> java.lang.IllegalArgumentException
> at
> org.apache.myfaces.trinidad.component.UIXComponentBase.findComponent(UIXComponentBase.java:432)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormRenderer.getFullOnkeypress(FormRenderer.java:964)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormRenderer.encodeBegin(FormRenderer.java:172)
> at
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeBegin(CoreRenderer.java:200)
> at
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeBegin(UIXComponentBase.java:678)
> at
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:288)
> at
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:321)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:64)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:138)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:119)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:78)
> at
> org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRenderer.java:335)
> at
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.DocumentRenderer.encodeAll(DocumentRenderer.java:80)
> at
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:224)
> at
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:711)
> at
> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:252)
> at
> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249)
> at
> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:594)
> at
> org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
> at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:250)
> at
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:207)
> at
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:161)
> at
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
> at java.lang.Thread.run(Thread.java:595)
> TEMPLATE:
> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:trh="http://myfaces.apache.org/trinidad/html"
> xmlns:tr="http://myfaces.apache.org/trinidad"
> xmlns:ui="http://java.sun.com/jsf/facelets">
>
> <ui:composition>
> <f:view locale="#{smth}">
> <tr:document title="#{pTitle}">
> <tr:form defaultCommand="#{pDefaultCommand}">
> ...
> </tr:form>
> </tr:document>
> </f:view>
> </ui:composition>
> </jsp:root>
> USE INSTANCE:
> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:trh="http://myfaces.apache.org/trinidad/html"
> xmlns:tr="http://myfaces.apache.org/trinidad"
> xmlns:ui="http://java.sun.com/jsf/facelets">
>
> <ui:composition>
> <ui:decorate>
> <ui:param name="pTitle" value="Test page" />
> <ui:param name="pDefaultCommand" value="this_is_bogus" />
> </ui:decorate>
> </ui:composition>
> </jsp:root>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.