Sub forms have to be nested. They only exclude data from other
subForms, not from the form.

<h:form>
1
<s:subForm id="a">
2
  <s:subForm id="b">3</s:subForm>
  <s:subForm id="c">4</s:subForm>
</s:subForm>
</h:form>

1: always submitted
2: submitted if "a" is specified
3: submitted if "b" is specified
4: submitted if "c" is specified

I've only used it a little bit, but I think that is how it works.

On 7/27/07, Gary Jackson <[EMAIL PROTECTED]> wrote:
>
> Now I'm really confused.  I've tried using subForm two different ways:
> with the subForm scope limiting validation to the contents when inner
> actions occur and subForm scope excluding validation caused by outside
> actions.  Either way, subForm is doing nothing for me.
>
> My current kit is the same from this file, plus the other various things
> that I need for my webapp:
>
> http://people.apache.org/~werpu/tomahawk-sandbox-examples.war
>
> Here is the relevant clause from my web.xml where I configure my taglib
> files:
>
>      <context-param>
>          <description>Tag libraries for facelets</description>
>          <param-name>facelets.LIBRARIES</param-name>
>          <param-value>
>
> /WEB-INF/tomahawk.taglib.xml;/WEB-INF/sandbox.taglib.xml;/WEB-INF/facelets/tags/glcf.taglib.xml
>          </param-value>
>      </context-param>
>
> Here are the entire contents of my sandbox.taglib.xml file:
>
> <?xml version="1.0"?>
> <!DOCTYPE facelet-taglib PUBLIC
>    "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
>    "http://java.sun.com/dtd/facelet-taglib_1_0.dtd";>
>
> <facelet-taglib>
>      <namespace>http://myfaces.apache.org/sandbox</namespace>
>      <tag>
>          <tag-name>subForm</tag-name>
>          <component>
>              <component-type>org.apache.myfaces.SubForm</component-type>
>              <renderer-type>org.apache.myfaces.SubForm</renderer-type>
>          </component>
>      </tag>
> </facelet-taglib>
>
> If it's relevant, the place where I am using <s:subForm> is inside of a
> JSF core <f:subview> element.
>
> Gary Jackson wrote:
> >
> > As I understand it, subForm works like this:
> >
> > <s:subForm id="inner">
> >     <h:inputText value="inner"/>
> >     <t:commandButton value="Submit Inner"/>
> > </s:subForm>
> >
> > <h:inputText value="outer"/>
> > <t:commandButton value="Submit Outer"/>
> >
> > When the "Submit Inner" button is pressed, everything is validated.
> >
> > When the "Submit Outer" button is pressed, everything except those
> > components inside the "inner" subForm are validated.
> >
> > Assuming this is true, how do I get the inverse behavior?  That is, I
> > want things inside the subForm to be validated when the "Submit Inner"
> > button is pressed, but nothing else?
> >
>
> --
> Gary
>

Reply via email to