AW: exception with automatic formbean population

"Bernhard Woehrlin" <[email protected]>
Newsgroups gmane.comp.java.strutscx.user
Organization IT.CappuccinoNet.com
Message-ID <001101c3d84c$793d4b00$4b01a8c0@javaws>
Hi Emmanuel,

I just checked the example - to get the data out of the form I used an
Array (sorry, the List just the other way to prepare the data for the
form):

Inside the bean:
private String[] para = new String[3];
  
Inside the Action:
String[] oldParas = infoForm.getPara();

// if you prefer a List do this...
ArrayList newParas = new ArrayList();
for (int i = 0; i < oldParas.length; i++) {
	newParas.add(new String(oldParas[i].getBytes("ISO-8859-1"),
encoding));
}

// now iterate through this list or do whatever with it
...

Replace para with value...

But this is just a quick Sunday afternoon solution - there should be a
way to handle a HashMap, too.

Regards,

Berny



			

-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von
Emmanuel Cohen
Gesendet: Sonntag, 11. Januar 2004 14:51
An: [email protected]
Betreff: Re: [Strutscx-user] exception with automatic formbean
population

Thank you for your prompt answer, Bernhard.

It seems that in strutscx-demo.war, your infoformbean is static.
By using Map values, my formbean is dynamic (I can populate dynamically
my
bean with any form -dynamically created with xsl and fields names gotten
on
the fly -).

The only fields and methods in my formbean are :
private final Map values = new HashMap();
public void setValue(String key, Object value);
public Object getValue(String key);

which is enough to retrieve all fields names and values in the Map.
I failed to see how I could replace this mechanism.
Would you explain me how it works without Map in the case of strutscx ?

Thank you very much,
Emmanuel



----- Original Message ----- 
From: "Bernhard Woehrlin" <[email protected]>
To: "'Emmanuel'" <[email protected]>;
<[email protected]>
Sent: Sunday, January 11, 2004 1:05 PM
Subject: AW: [Strutscx-user] exception with automatic formbean
population


Hi Emmanuel,

The reason of the error is: XML names cannot contain the character "(".

One solution would be to replace the Map with a List. Check out the
strutscx-demo.war for an respective example. - Maybe there are other
solutions, too. But keep in mind: StrutsCXStandardDocumentBuilder will
try to make XML elements out of the Request's parameter names.

Hope this is of help for you.

Regards,

Berny


-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von
Emmanuel
Gesendet: Samstag, 10. Januar 2004 22:28
An: [email protected]
Betreff: [Strutscx-user] exception with automatic formbean population

Hi All,

I use a formbean that retrieves information passed in a form, like this
:

public class InfoFormBean extends StrutsCXValidatorForm {
...
private final Map values = new HashMap();

public void setValue(String key, Object value) {
logger.debug("key:"+key);
values.put(key, value);
}

public Object getValue(String key) {

return values.get(key);
}
...
}

##and my form looks like :
<form ...>
<input name="value(key1)"
type="text" />
<input name="value(prop1)"
type="text" /> ...
</form>


##The formbean is populated alright. The associated action is called and
execute is code also.
##But after the action executes its forward to another page, I get the
following exception :

2004-01-10 22:04:02,158 DEBUG - [StrutsCXStandardDocumentBuilder]
CONSTRUCT request Parameter: action = UPDATE
2004-01-10 22:04:02,158 DEBUG - [StrutsCXStandardDocumentBuilder]
CONSTRUCT request Parameter: value(key1) = townname
MonitorFilter::Error: The name "value(key2)" is not legal for JDOM/XML
elements: XML names cannot contain the character "(".
MonitorFilter::A web application object caused an exception
MonitorFilter::org.jdom.IllegalNameException: The name "value(key2)" is
not legal for JDOM/XML elements: XML names cannot contain the character
"(".
at org.jdom.Element.setName(Element.java:217)
at org.jdom.Element.<init>(Element.java:145)
at org.jdom.Element.<init>(Element.java:158)
etc....

##I tried to reset the formbean before doing the forward, but the error
is exactly the same.
I do not need this information (value(key2)) anymore at that time.
How could I get rid of that ?

Thanks in advance.
Emmanuel



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.555 / Virus Database: 347 - Release Date: 23/12/2003




-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Strutscx-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/strutscx-user



-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.