struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Matthieu.M...@ensam.eu>
Subject RE : RE: Multiple field and modelDriven
Date Fri, 18 Feb 2011 09:40:44 GMT
Thanks, for the information, I was an aspect of Struts2 I have not yet learned. So I do, and
it is very interesting.

I tried to go this way for my problem. 

My Action class : public class myAction implements ModelDriver<User>;

My User class from another java package : public class User { public String getStreetAddress();
public void setStreetAddress(String value); }

I create a file :  src/org/another/java/package/User-conversion.properties containing : streetAddress=org.myapp.conversion.AddressConverter

My converter class is :
public class AddressConverter extends StrutsTypeConverter {
        @Override
        public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
                // TODO 
                return null;
        }
        @Override
        public String convertToString(Map arg0, Object arg1) {
                
                StringBuffer strbuf = new StringBuffer();
                if (arg1 instanceof String[]){
                        String[] addr = (String[])arg1;
                        for (int i=0; i<addr.length; i++){
                                strbuf.append(addr[i]);
                                strbuf.append("\r\n");
                        }
                        return strbuf.toString();
                }
                return null;
        }
}

My JSP file is :
        <s:form>
                <s:textfield key="address.streetAddress" id="streetAddress1" name="address.streetAddress"
/>
                <s:textfield key="address.streetAddress" id="streetAddress2" name="address.streetAddress"
/>
        </s:form>

When submitting the form, convertToString() is called and conversion is done.
#streetAddress1=line1,#streetAddres2=line2 -> convertToString() -> return "line1\r\nline2\r\n"
-> User.setStreetAddress("line1\r\nline2\r\n");

My problem is now when returning info the form, when prepopulating form field. The convertToString()
is called (I was thinking I will be the other one convertFromString() but not). And so I am
not able to split my User.getStreetAddress() value in order to put value into the String[].



Matthieu MARC

----
Matthieu MARC
Service Informatique
Arts et Métiers ParisTech - Centre d'Angers
matthieu.marc@ensam.eu

________________________________________
De : Maurizio Cucchiara [maurizio.cucchiara@gmail.com]
Date d'envoi : jeudi 17 février 2011 10:41
À : Struts Users Mailing List
Objet : Re: RE: Multiple field and modelDriven

I'm not sure, maybe type conversion is the answer to your question.
Have you already seen this [1]?

[1] http://struts.apache.org/2.2.1/docs/type-conversion.html

Maurizio Cucchiara

Il giorno 17/feb/2011 10.36, <Matthieu.Marc@ensam.eu> ha scritto:
> My User Class came from another java library which bind User class to an
Active Directory User. I would like to find a solution without modifying
this java library.
>
> ... but If there is no solution, I will modify my User class.
>
> Matthieu MARC
>
>
> -----Message d'origine-----
> De : Maurizio Cucchiara [mailto:maurizio.cucchiara@gmail.com]
> Envoyé : jeudi 17 février 2011 10:31
> À : Struts Users Mailing List
> Objet : Re: Multiple field and modelDriven
>
> Pardon, I didn't see model driven stuff.
> Have you tryied to change your address field to an array string or a
simple collection?
>
> Maurizio Cucchiara
>
> Il giorno 17/feb/2011 09.07, <Matthieu.Marc@ensam.eu> ha scritto:
>> Hi everybody,
>>
>> I have a class named User which contain some information about user .
>>
>> I have made a form in my JSP and an action which is modelDriven with
>> my
> User class.
>>
>> Public class User implements modelDriven<User>{}...
>>
>> My question is about multiple field with same id in my JSP. My User
>> class
> have a field named streetaddresses (which is linked with an active
directory field of the same name). In my form, I want to put 3 input field
for streetaddresses (streetaddresses line 1, streetaddresses line2 and
streetaddresses line3).
>> If I do this, the three field will be concatenated using comma (line1,
> line2, line3)
>>
>> Is there a way to change the separator comma with another thing (like
> \r\n) ? (line1\r\nline2\r\nline3)
>>
>> And will it will prepopulate the three field splitting the
> getStreetAddresses field using the separator when I will want to make a
form to modify informations ?
>>
>> Streetaddresses = line1\r\nline2\r\nline3\r\n -> streetaddresses line1
>> =
> line1 -> streetaddresses line2 = line2....
>>
>> Thanks
>>
>> Matthieu MARC
>>
>> ------
>> Matthieu.marc@ensam.eu<mailto:Matthieu.marc@ensam.eu>
>> Responsable du Service Informatique
>> Arts et Métiers ParisTech - Angers
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message