Have you had any luck with this?
I'm trying to figure out the same thing...
I have a complicated form that uses several nested components to
implement it. The structure of the form is straightforward, though.
Everything renders just fine, but when the form is being submitted and
the form fields are updating values, only the property bound to a
loop's 'value' binding is non-null. Notably, all of the components'
parameters are null! Unfortunately, I can't recreate the entire state
of the component from just that single object.
I'm rather stuck at this point. I've tried dissecting the
BeanEditForm and enclosed components to try to figure out how it deals
with something similar, but I don't seem to be able to find where the
trick is.
Howard? Anybody?
:-)
On Aug 9, 2008, at 6:52 PM, Brendan McNichols wrote:
Hi All,
I have been struggling with the following problem for quite a
while. I
have a custom component for which I have defined a parameter with a
binding type of property. I have the component within a form that is
within a loop on my page. The parameter of my component is bound to
the
value of the "value" parameter of the loop. The value of my parameter
ends up always being null, when the value is requested in my
component,
a PropBinding calls the getter on my page class. Everything is good
so
far as rendering goes. The problem is that when I submit the form, I
want to access my value, so the PropBinding again calls the getter
on my
page class. At this point, I get a NullPointerException since the
value
of the property in my page class is now null since the loop is no
longer
being rendered. So my question is this: Is there a way to retaint
the
value of the property in the component instead of it always being null
and having the PropBinding call the getter on the page? (BTW, I am
using version 5.0.13)
Here's a snippet of the component java class:
public class MenuEntry {
// This setter never gets called.
public void setModel(Model model) {
this.model = model;
}
// This works fine because it is only called when rendering.
public String getModelName() {
return model.getName();
}
// NullPointerException gets thrown because the PropBinding calls
the getter
// on the page class and the property is null since the loop is no
longer being renderes.
public void setModelName(String name) {
model.setName(name);
}
// a bunch of non-relevant methods not shown...
@Parameter(required = true, principal = true)
private Model model;
// bunch of non-relevant fields not shown...
}
And a snippet of the page class:
public class Build {
// bunch of non-relevant methods not shown...
public Model getMenuModel() {
return menuModel;
}
public void setMenuModel(Model model) {
menuModel = model;
}
// bunch of non-relevant fields not shown...
private Model menuModel;
}
And finally, a snippet of the page tml:
<!-- bunch of non-relevant html not shown -->
<t:loop t:source="menuModels" t:value="menuModel">
<t:form t:id="menuEntryDetails" context="menuModel">
<t:menuentry t:id="menuEntryComponent" model="menuModel"/>
<div><input type="submit" value="Save"/></div>
</t:form>
</t:loop>
<!-- bunch more non-relevant html not shown -->
Thanks very much in advance for any help!
Brendan McNichols
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]