Hi,
I'm trying to get some simple list editing working using For and
TextField but not having much luck.
Home.html: -
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Example app</title>
</head>
<body jwcid="@Body">
<h1>Hello world!</h1>
<form jwcid="@Form" success="listener:submit">List
of names:
<div jwcid="@For" source="ognl:names" value="ognl:name" index="ognl:idx">
<p><span jwcid="@Insert" value="ognl:idx">1</span> <input
jwcid="@TextField" value="ognl:name" /></p>
</div>
<input type="submit" jwcid="@Submit" listener="listener:add" value="Add" />
<input type="submit" jwcid="@Submit" value="Update" /></form>
</body>
</html>
Home.java
public abstract class Home extends BasePage implements
PageBeginRenderListener {
private static final Logger LOG = Logger.getLogger(Home.class);
public void pageBeginRender(PageEvent event) {
LOG.info("Begin render. Rewind? " +
getRequestCycle().isRewinding());
if(getNames()== null) {
LOG.info("Initializing names list");
setNames(new ArrayList<String>());
}
}
public void submit() {
LOG.info("Submitted. List is: " + getNames());
}
public void add() {
LOG.info("Adding a blank name to "+ getNames());
List<String> nms = getNames();
nms.add("");
setNames(nms);
}
public abstract List<String> getNames();
public abstract void setNames(List<String> nms);
public abstract String getName();
public abstract int getIdx();
}
When I click the "Add" button I get: -
9627410 [btpool0-3] INFO com.example.pages.Home - Begin render.
Rewind? true
9627411 [btpool0-3] INFO com.example.pages.Home - Initializing names list
9627423 [btpool0-3] INFO com.example.pages.Home - Adding a blank name
to []
9627424 [btpool0-3] INFO com.example.pages.Home - Submitted. List is:
[ ---- ]
9627424 [btpool0-3] INFO com.example.pages.Home - Begin render.
Rewind? false
Then changing the value in the form input and clicking submit produces
this: -
9638858 [btpool0-3] INFO com.example.pages.Home - Begin render.
Rewind? true
9638858 [btpool0-3] INFO com.example.pages.Home - Initializing names list
9638859 [btpool0-3] INFO com.example.pages.Home - Submitted. List is: []
9638859 [btpool0-3] INFO com.example.pages.Home - Begin render.
Rewind? false
I'm puzzled - why hasn't the list been populated from the TextFields in
the For loop?
Any pointers gratefully received.
cheers,
jim
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]