Author Login
Post Reply
user Digest 4 Feb 2008 19:22:21 -0000 Issue 7843
Topics (messages 182195 through 182206):
Re: question on mapping
182195 by: Giovanni Azua
Re: Struts validator
182196 by: Alexandru BARBAT
Re: [OT] Killer Scam
182197 by: Wes Wannemacher
182200 by: Greg Reddin
182201 by: bhaarat Sharma
182204 by: Antonio Petrelli
Re: AjaxTag 1.3 support?
182198 by: Griffith, Michael *
182199 by: Griffith, Michael *
182203 by: Hodgins, Grant
182205 by: Griffith, Michael *
182206 by: Musachy Barroso
Re: Datetimepicker simple thing doesn't work
java.text.ParseException: Unparseable date: ""
182202 by: Laurie Harper
Administrivia:
---------------------------------------------------------------------
To post to the list, e-mail: user@(protected)
To unsubscribe, e-mail: user-digest-unsubscribe@(protected)
For additional commands, e-mail: user-digest-help@(protected)
----------------------------------------------------------------------

Attachment:
user_182195.ezm (zipped)Thanks this looks like what I was looking for. I will have to see how to
define a custom stack
and use the two together ...
regards,
Giovanni
Jeromy Evans wrote:
> Will CodeBehind give what you need? I'm not sure with your use of
> wildcards.
> It gives "pages with no mapping": a default do-nothing action that
> provides access to s2 tags & resources...but not to a default tile AFAIK
>
> http://struts.apache.org/2.0.11/docs/codebehind-plugin.html
>
> Giovanni Azua wrote:
>> hi,
>>
>> Suppose you have a struts.xml mapping that looks like:
>>
>> <action name="Form*"
>> class="com.sag.optimizer.ui.web.action.form.Form{1}Action">
>> <result name="input" type="tiles">webui.form{1}</result>
>> <result name="error" type="tiles">webui.failed</result>
>> </action> In several cases I will probably want to provide a
>> valid non empty implementation of a corresponding Form{1}Action.class
>> but in some cases I don't want to have to provide any but a default
>> implementation e.g. FormGenericAction that just extends
>> ActionSupport. Is there any way to do that?
>>
>> My coverage reports are getting uglier and this is one of the reasons :)
>>
>> regards,
>> Giovanni
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@(protected)
>> For additional commands, e-mail: user-help@(protected)
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>

Attachment:
user_182196.ezm (zipped)Hi,
You can override method
public String getValidationKey(ActionMapping mapping,
HttpServletRequest request) {..}
From your ValidatorForm (it doesn't matter if it is dyna or not)
And return different validation keys for each button pressed.
Validation key identify the rules of validation.
The validation file will look then something like:
<form name="myAction_button1">
<!--if submit button 1 clicked, I validate the
following field>-->
<field property="myProperty" depends="required">
<msg name="required" key="error.key1" />
</field>
</form>
<form name="myAction_button2">
<!--if submit button 2 clicked, I validate the following
field>-->
<field property="name" depends="myValidator">
<msg name="myValidator" key="error.key2" />
</field>
</form>
alex
-----Original Message-----
From: Dave Newton [mailto:newton.dave@(protected)]
Sent: Friday, February 01, 2008 6:29 PM
To: Struts Users Mailing List
Subject: RE: Struts validator
--- "Zhang, Larry (L.)" <lzhang20@(protected):
> No, I am using struts 1.1,
Oh, wow.
Does validwhen[1] not exist in S1.1? You can always create a custom
validator
as well if you find your validation stretches what's easy to do with the
existing validation configuration possibilities. You may also be able to
combine declarative validation (via XML) and Java-based validation, although
it's been a pretty long time since I've thought about that :)
Dave
[1] http://struts.apache.org/1.1/userGuide/dev_validator.html (about 1/3 of
the way down)
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

Attachment:
user_182197.ezm (zipped)Sorry everyone, I guess I should take two lessons away from this -
1. No matter how frustrated you get with a project, you should never
take it out on other users.
2. I should do a bit more research on the integrity of the hitmen I
hire before agreeing to a contract.
There is nothing to worry about, I already revoked the contract.
-Wes
Disclaimer: This is a JOKE! I am more of a do-it-yourself kind of guy
anyways, a contract hit wouldn't be my style.
On 2/4/08, Greg Reddin <gredbug@(protected):
> On Feb 4, 2008 11:00 AM, bhaarat Sharma <bhaarat.s@(protected):
> > I didnt get it. or maybe i deleted it already.
> >
> > Anyone wana paste what it read?
>
> Antonio's post had the link:
>
> http://www.scamorama.com/killer.html
>
> Maybe you should be worried if you didn't get one :-)
>
> Greg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
--
Wesley Wannemacher
President, Head Engineer/Consultant
WanTii, Inc.
http://www.wantii.com

Attachment:
user_182200.ezm (zipped)That's awesome :-)
On Feb 4, 2008 11:30 AM, Wes Wannemacher <wesw@(protected):
> Sorry everyone, I guess I should take two lessons away from this -
>
> 1. No matter how frustrated you get with a project, you should never
> take it out on other users.
>
> 2. I should do a bit more research on the integrity of the hitmen I
> hire before agreeing to a contract.
>
> There is nothing to worry about, I already revoked the contract.
>
> -Wes
>
> Disclaimer: This is a JOKE! I am more of a do-it-yourself kind of guy
> anyways, a contract hit wouldn't be my style.
>
> On 2/4/08, Greg Reddin <gredbug@(protected):
>
> > On Feb 4, 2008 11:00 AM, bhaarat Sharma <bhaarat.s@(protected):
> > > I didnt get it. or maybe i deleted it already.
> > >
> > > Anyone wana paste what it read?
> >
> > Antonio's post had the link:
> >
> > http://www.scamorama.com/killer.html
> >
> > Maybe you should be worried if you didn't get one :-)
> >
> > Greg
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> >
>
>
> --
> Wesley Wannemacher
> President, Head Engineer/Consultant
> WanTii, Inc.
> http://www.wantii.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>

Attachment:
user_182201.ezm (zipped)i do see a shady construction truck outside my building....
On 2/4/08, Greg Reddin <gredbug@(protected):
That\'s awesome :-)
>
> On Feb 4, 2008 11:30 AM, Wes Wannemacher <wesw@(protected):
> > Sorry everyone, I guess I should take two lessons away from this -
> >
> > 1. No matter how frustrated you get with a project, you should never
> > take it out on other users.
> >
> > 2. I should do a bit more research on the integrity of the hitmen I
> > hire before agreeing to a contract.
> >
> > There is nothing to worry about, I already revoked the contract.
> >
> > -Wes
> >
> > Disclaimer: This is a JOKE! I am more of a do-it-yourself kind of guy
> > anyways, a contract hit wouldn\'t be my style.
> >
> > On 2/4/08, Greg Reddin <gredbug@(protected):
> >
> > > On Feb 4, 2008 11:00 AM, bhaarat Sharma <bhaarat.s@(protected):
> > > > I didnt get it. or maybe i deleted it already.
> > > >
> > > > Anyone wana paste what it read?
> > >
> > > Antonio\'s post had the link:
> > >
> > > http://www.scamorama.com/killer.html
> > >
> > > Maybe you should be worried if you didn\'t get one :-)
> > >
> > > Greg
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > > For additional commands, e-mail: user-help@(protected)
> > >
> > >
> >
> >
> > --
> > Wesley Wannemacher
> > President, Head Engineer/Consultant
> > WanTii, Inc.
> > http://www.wantii.com
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>

Attachment:
user_182204.ezm (zipped)2008/2/4, Greg Reddin <gredbug@(protected)>:
> On Feb 4, 2008 4:47 AM, Antonio Petrelli <antonio.petrelli@(protected):
> > I received an email scam in my apache.org email that is,
> > substantially, the first in this list:
> > http://www.scamorama.com/killer.html
> >
> > Did you receive such a letter?
>
> Yep, I got one. Somebody don't like Tiles I guess :-)
Or Apache in General. I have a name in mind, we'd better support him
in buying Yahoo...
Antonio

Attachment:
user_182198.ezm (zipped)Musachy,
The error displays in the browser, true, but I believe this is because I
have: <s:head theme="ajax" debug="true"/> set to show debug.
So this is an ajax/dojo message...?
I don't have any code such as: "this.data[x][0].toLowerCase" anywhere in
the JSP or javascript sources.
Oh, and I have given up on AjaxTags -- it seems silly to include another
library to do what is already built into struts. Now if I can just get
it to work...
Cheers!
MG
-----Original Message-----
From: Musachy Barroso [mailto:musachy@(protected)]
Sent: Monday, February 04, 2008 11:06 AM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
I think that error is coming from your jsp, not the JSON generation.
Do you have "this.data[x][0].toLowerCase" somewhere?
musachy
On Feb 4, 2008 11:57 AM, Griffith, Michael *
<Michael.Griffith@(protected):
> Jeromy,
>
> Again, thanks for the reply. I appreciate your help!
>
> Following your example below, I can see the JSON result in the app
> server console when the action called, but I get the following error
in
> the browser:
>
> FATAL exception raised: TypeError: Value undefined (result of
expression
> this.data[x][0].toLowerCase) is not object.
>
> What is this telling me?
>
> -- my Struts mapping:
> <package name="search" extends="json-default"
> namespace="/search">
> <action name="searchByText"
> class="...QuestionSearchAction">
> <result name="success" type="json">
> <param name="root">list</param>
> </result>
> </action>
> </package>
>
> -- My Form:
> <s:url id="search" namespace="/search" value="/searchByText.action" />
> <s:autocompleter theme="ajax" href="%{search}" name="text"
> loadOnTextChange="true" loadMinimumCount="3"/>
>
>
> -- My Action:
> public class QuestionSearchAction extends BaseAction {
>
> /**
> *
> */
> private static final long serialVersionUID =
> 1127012585409657094L;
>
> Question[] list;
> private QuestionService questionService;
>
> public void setQuestionService(QuestionService
questionService)
> {
> this.questionService = questionService;
> }
>
> public String execute() {
> List<Question> all= questionService.getQuestions();
> list= all.toArray( new Question[all.size()]);
> return SUCCESS;
> }
>
> public Question[] getList(){
> return list;
> }
>
> }
>
>
> Cheers!
> mg
>
> -----Original Message-----
> From: Jeromy Evans [mailto:jeromy.evans@(protected)]
> Sent: Saturday, February 02, 2008 6:15 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
>
> I completely agree with Dave so I'll take a different tact.
>
> Based on this example:
>
http://struts.apache.org/2.0.11/docs/ajax-tags.html#AjaxTags-autocomplet
> erTag,
> I would also take the approach of returning a JSON Result via the JSON
> Plugin. Only the configuration changes for an XML result.
>
> So, my form looks like this:
>
> <s:url id="json" value="/JSONList.action" />
> <s:autocompleter theme="ajax" href="%{json}" dropdownHeight="180"/>
>
> So, my struts.xml contains the corresponding action definition with a
> JSON result:
>
> <package name="example" extends="json-default">
> <action name="JSONList" class="package.ListAction">
> <result name="success" type="json">
> <param name="root">list</param>
> </result>
> </action>
> </package>
>
> And my action method looks like this:
>
> private ACEntry[] list;
>
> public String execute() {
> list = populateList()
> return "success";
> }
>
> public ACEntry[] getList() {
> return list;
> }
>
> ---
> In summary, the autocompleter does a get to /JSONList.action
> Struts2 executes the execute method of ListAction
> The execute method creates a structure that will populate the
> autocompleter
> The action returns a JSON result type
> The JSON plugin converts the root object (the list property only
rather
> than the whole action) to a JSON structure
> The JSON plugin returns the application/json content to the
> autocompleter
>
> I'll leave it to you to determine what the list structure should like
> like. As it'll probably be re-use I'd create a bean for the purpose.
> Use the FireBug plugin for firefox to inspect the format of the JSON
> result to ensure it matches the format required by the javascript
> library (or even better, write a unit test).
> This will work with any javascript library that accepts JSON - you
just
> have to provide an appropriate structure. It will also work with any
> library that requires an XML response, except you'd use an XML result
> type like I previously described in this thread.
>
> I hope that helps. Struts2 is really well suited at providing
non-html
> responses if you take the time to understand the ResultType
> architecture.
>
> cheers,
> Jeromy Evans
>
> Dave Newton wrote:
> > --- "Griffith, Michael *" <Michael.Griffith@(protected):
> >
> >> Thanks for the comprehensive reply. Looking at the documentation
and
> the
> >> example app, I am still not sure how to configure my
action/response.
> I
> >> am using tiles 2.
> >>
> >
> > As previously stated if you are writing directly to the response you
> need to
> > return null from the action. I am still not sure why you're using a
> tile
> > definition here.
> >
> >
> >
> >> It seems I need to return my result in JSON format correct? By
> returning
> >> a JSON String from the action, how to I configure my response?
> >>
> >
> > As Jeremy said this is, however, probably a bad idea, considering
that
> the
> > same outcome can be achieved in several different ways.
> >
> > Using a JSON result will serialize your action to JSON
automagically.
> You'd
> > use a "json" result (via the JSON plugin), not a tile. Or you could
> build the
> > JSON manually and configure a FreeMarker result.
> >
> >
> >> If I use the tiles response type, I get a dojo parsing error
because
> the
> >> whole page is returned from the reply.
> >>
> >
> > Sure.
> >
> >
> >> The example in the example app isn't very clear to me, as the
action
> >> returns a .JS file with the result hard coded, and not using any
> >> template like tiles I might add.
> >>
> >
> > What example are you referring to?
> >
> >
>
http://struts.apache.org/2.0.11/docs/ajax-tags.html#AjaxTags-autocomplet
> erTag?
> >
> > When making an Ajax request for a component like
<s:autocompleter.../>
> it's
> > unlikely you'd want to return anything other than JSON. (Other
> components or
> > component libraries may want other formats like XML or whatever.)
> Unless your
> > tile definition is creating JSON it's not going to work, and it's
> unlikely
> > that would be the best way to generate the JSON anyway.
> >
> >
> >> Also, I think I found a bug? -- the namespace attribute seems to be
> >> ignored when I pass href=%{search} to the autocompleter. I had to
put
> >> qualify the namespace in the value to get the correct action to be
> >> invoked.
> >>
> >
> > When you configure the package does your namespace have a leading
"/"
> (slash)
> > character? If it doesn't this can lead to dispatching issues.
> >
> > Dave
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> >
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
--
"Hey you! Would you help me to carry the stone?" Pink Floyd
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

Attachment:
user_182199.ezm (zipped)Actually, I thought I would post the entire debug message here, in case
that is helpful:
DEBUG: DEPRECATED: dojo.widget.Manager.getImplementationName Could not
locate widget implementation for "html" in "html.widget" registered to
namespace "html". Developers must specify correct namespaces for all
non-Dojo widgets -- will be removed in version: 0.5
DEBUG: dojo.widget.Parse: error:TypeError: Value [object Object] (result
of expression impl) is not a constructor. Cannot be used with new.
FATAL exception raised: TypeError: Value undefined (result of expression
this.data[x][0].toLowerCase) is not object.
MG
-----Original Message-----
From: Musachy Barroso [mailto:musachy@(protected)]
Sent: Monday, February 04, 2008 11:06 AM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
I think that error is coming from your jsp, not the JSON generation.
Do you have "this.data[x][0].toLowerCase" somewhere?
musachy
On Feb 4, 2008 11:57 AM, Griffith, Michael *
<Michael.Griffith@(protected):
> Jeromy,
>
> Again, thanks for the reply. I appreciate your help!
>
> Following your example below, I can see the JSON result in the app
> server console when the action called, but I get the following error
in
> the browser:
>
> FATAL exception raised: TypeError: Value undefined (result of
expression
> this.data[x][0].toLowerCase) is not object.
>
> What is this telling me?
>
> -- my Struts mapping:
> <package name="search" extends="json-default"
> namespace="/search">
> <action name="searchByText"
> class="...QuestionSearchAction">
> <result name="success" type="json">
> <param name="root">list</param>
> </result>
> </action>
> </package>
>
> -- My Form:
> <s:url id="search" namespace="/search" value="/searchByText.action" />
> <s:autocompleter theme="ajax" href="%{search}" name="text"
> loadOnTextChange="true" loadMinimumCount="3"/>
>
>
> -- My Action:
> public class QuestionSearchAction extends BaseAction {
>
> /**
> *
> */
> private static final long serialVersionUID =
> 1127012585409657094L;
>
> Question[] list;
> private QuestionService questionService;
>
> public void setQuestionService(QuestionService
questionService)
> {
> this.questionService = questionService;
> }
>
> public String execute() {
> List<Question> all= questionService.getQuestions();
> list= all.toArray( new Question[all.size()]);
> return SUCCESS;
> }
>
> public Question[] getList(){
> return list;
> }
>
> }
>
>
> Cheers!
> mg
>
> -----Original Message-----
> From: Jeromy Evans [mailto:jeromy.evans@(protected)]
> Sent: Saturday, February 02, 2008 6:15 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
>
> I completely agree with Dave so I'll take a different tact.
>
> Based on this example:
>
http://struts.apache.org/2.0.11/docs/ajax-tags.html#AjaxTags-autocomplet
> erTag,
> I would also take the approach of returning a JSON Result via the JSON
> Plugin. Only the configuration changes for an XML result.
>
> So, my form looks like this:
>
> <s:url id="json" value="/JSONList.action" />
> <s:autocompleter theme="ajax" href="%{json}" dropdownHeight="180"/>
>
> So, my struts.xml contains the corresponding action definition with a
> JSON result:
>
> <package name="example" extends="json-default">
> <action name="JSONList" class="package.ListAction">
> <result name="success" type="json">
> <param name="root">list</param>
> </result>
> </action>
> </package>
>
> And my action method looks like this:
>
> private ACEntry[] list;
>
> public String execute() {
> list = populateList()
> return "success";
> }
>
> public ACEntry[] getList() {
> return list;
> }
>
> ---
> In summary, the autocompleter does a get to /JSONList.action
> Struts2 executes the execute method of ListAction
> The execute method creates a structure that will populate the
> autocompleter
> The action returns a JSON result type
> The JSON plugin converts the root object (the list property only
rather
> than the whole action) to a JSON structure
> The JSON plugin returns the application/json content to the
> autocompleter
>
> I'll leave it to you to determine what the list structure should like
> like. As it'll probably be re-use I'd create a bean for the purpose.
> Use the FireBug plugin for firefox to inspect the format of the JSON
> result to ensure it matches the format required by the javascript
> library (or even better, write a unit test).
> This will work with any javascript library that accepts JSON - you
just
> have to provide an appropriate structure. It will also work with any
> library that requires an XML response, except you'd use an XML result
> type like I previously described in this thread.
>
> I hope that helps. Struts2 is really well suited at providing
non-html
> responses if you take the time to understand the ResultType
> architecture.
>
> cheers,
> Jeromy Evans
>
> Dave Newton wrote:
> > --- "Griffith, Michael *" <Michael.Griffith@(protected):
> >
> >> Thanks for the comprehensive reply. Looking at the documentation
and
> the
> >> example app, I am still not sure how to configure my
action/response.
> I
> >> am using tiles 2.
> >>
> >
> > As previously stated if you are writing directly to the response you
> need to
> > return null from the action. I am still not sure why you're using a
> tile
> > definition here.
> >
> >
> >
> >> It seems I need to return my result in JSON format correct? By
> returning
> >> a JSON String from the action, how to I configure my response?
> >>
> >
> > As Jeremy said this is, however, probably a bad idea, considering
that
> the
> > same outcome can be achieved in several different ways.
> >
> > Using a JSON result will serialize your action to JSON
automagically.
> You'd
> > use a "json" result (via the JSON plugin), not a tile. Or you could
> build the
> > JSON manually and configure a FreeMarker result.
> >
> >
> >> If I use the tiles response type, I get a dojo parsing error
because
> the
> >> whole page is returned from the reply.
> >>
> >
> > Sure.
> >
> >
> >> The example in the example app isn't very clear to me, as the
action
> >> returns a .JS file with the result hard coded, and not using any
> >> template like tiles I might add.
> >>
> >
> > What example are you referring to?
> >
> >
>
http://struts.apache.org/2.0.11/docs/ajax-tags.html#AjaxTags-autocomplet
> erTag?
> >
> > When making an Ajax request for a component like
<s:autocompleter.../>
> it's
> > unlikely you'd want to return anything other than JSON. (Other
> components or
> > component libraries may want other formats like XML or whatever.)
> Unless your
> > tile definition is creating JSON it's not going to work, and it's
> unlikely
> > that would be the best way to generate the JSON anyway.
> >
> >
> >> Also, I think I found a bug? -- the namespace attribute seems to be
> >> ignored when I pass href=%{search} to the autocompleter. I had to
put
> >> qualify the namespace in the value to get the correct action to be
> >> invoked.
> >>
> >
> > When you configure the package does your namespace have a leading
"/"
> (slash)
> > character? If it doesn't this can lead to dispatching issues.
> >
> > Dave
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> >
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
--
"Hey you! Would you help me to carry the stone?" Pink Floyd
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

Attachment:
user_182203.ezm (zipped)Thanks for the insight Jeremy.
I totally agree that writing to the response is not an elegant solution. But sometimes we choose quick solutions that work when a project deadline looms.
The reason I initially chose AjaxTags was that the example for the autocompleter combo in Struts Showcase didn't work in IE6(the last one):
http://www.planetstruts.org/struts2-showcase/ajax/autocompleter/
Grant
________________________________
From: Jeromy Evans [mailto:jeromy.evans@(protected)]
Sent: Fri 2/1/2008 4:35 PM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
My 2c:
I think this is a bad solution and shouldn't be encouraged. It's
marginally better than writing a custom servlet.
Struts2 ResultTypes [1] are designed specifically for controlling the
type and content of results from actions to separate the view from the
model, even if the "view" is XML data. Accessing the response and
writing to it directly isn't necessary except in the rarest of cases.
For Ajax/JS libraries that use JSON, the JSON Plugin (JSON ResultType)
[2] will serialize your action into JSON automatically
The XSL ResultType will serialize your action into XML if you provide a
stylesheet [3]
The REST plugin includes code to serialize your action into XML using
Xstream. [4]
My point is, your action can setup a model (eg. a javabean matching the
model expected by AjaxTag), and the ResultType can serialize it to the
output stream. In this case I'd create a custom result type using
XStream, but you could also use a XML template in a Tile, or have a
ResultType that accesses the instance created by AjaxXMLBuilder.
[1] http://struts.apache.org/2.0.11/docs/result-types.html
[2] http://cwiki.apache.org/S2PLUGINS/json-plugin.html
[3] http://struts.apache.org/2.0.11/docs/xsl-result.html
[4] http://xstream.codehaus.org/
[5] http://struts.apache.org/2.0.11/docs/result-configuration.html
regards
Jeromy Evans
Hodgins, Grant wrote:
> I was able to get the AjaxTags stuff working (with Tiles2 although I don't think that matters at all).
>
> As Dave said, your action should return null since you want the action to return XML in the response.
>
> Instead, in addition to returning a null result, I simply wrote the xml to the response:
>
> AjaxXmlBuilder xml = new AjaxXmlBuilder();
>
> ... build your xml response ...
>
> response.setContentType("text/xml; charset=iso-8859-1");
> response.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
> response.addHeader("Cache-Control", "post-check=0, pre-check=0");
> response.setHeader("Pragma", "no-cache");
>
> PrintWriter pw = response.getWriter();
> pw.write(xml.toString());
> pw.close();
>
> Hope this helps.
>
> Grant
>
> ________________________________
>
> From: Griffith, Michael * [mailto:Michael.Griffith@(protected)]
> Sent: Fri 2/1/2008 3:48 PM
> To: Struts Users Mailing List
> Subject: RE: AjaxTag 1.3 support?
>
>
>
> Dave,
>
> Thanks for the reply. I guess I should have said freemarker instead of
> sitemesh...? At any rate, when the docs don't match the release, it's a
> bad thing.
>
> I shouldn't need to do any of this should I? Can you point me at a
> simple, minimalist example of the <s:autocompleter> tag?
>
> mg
>
> -----Original Message-----
> From: Dave Newton [mailto:newton.dave@(protected)]
> Sent: Friday, February 01, 2008 5:42 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
> --- "Griffith, Michael *" <Michael.Griffith@(protected):
>
>> public class QuestionAction extends BaseAction implements
>> ModelDriven<Question>, Preparable, ServletRequestAware,
>> ServletResponseAware {
>> public String getSearchTerm() throws Exception {
>> System.out.println("**** Question Search Term:" + qt);
>> List<Question> results=
>>
> questionService.getQuestions(qt);
>
>> AjaxXmlBuilder builder= new AjaxXmlBuilder();
>> builder.addItems(results, "questionType", "text");
>>
>> response.setContentType("text/xml");
>> response.setHeader("Cache-Control", "no-cache");
>> ServletOutputStream out = response.getOutputStream();
>> out.print(builder.toString());
>> out.close();
>>
>> return SUCCESS;
>> }
>>
>> My struts mapping:
>>
>> <package name="question" extends="base-pkg"
>> namespace="/question">
>> <action name="get-term" method="getSearchTerm"
>> class="...QuestionAction">
>> <result name="success"
>> type="tiles">question.panel</result>
>> </action>
>> </package>
>>
>
> If you're writing directly to the stream I doubt you'd even want to
> return
> anything other than a null from the action, no? What is the
> "question.panel"
> tile?
>
>
>> The struts 2 Ajax documentation seems manic and dated. It seems the S2
>> Ajax implementation is tied closely to sitemesh, which I am not using.
>>
>
> SiteMesh? The Ajax implementation isn't tied to SiteMesh at all.
>
> Dated? Much of the S2 Ajax documentation is for S2.1, which isn't even
> released yet. If anything, it's pre-dated.
>
> Dave
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
>
> ----Notice Regarding Confidentiality----
> This email, including any and all attachments, (this "Email") is intended only for the party to whom it is addressed and may contain information that is confidential or privileged. Sierra Systems Group Inc. and its affiliates accept no responsibility for any loss or damage suffered by any person resulting from any unauthorized use of or reliance upon this Email. If you are not the intended recipient, you are hereby notified that any dissemination, copying or other use of this Email is prohibited. Please notify us of the error in communication by return email and destroy all copies of this Email. Thank you.
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.19.18/1255 - Release Date: 1/02/2008 9:59 AM
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)
----Notice Regarding Confidentiality----
This email, including any and all attachments, (this "Email") is intended only for the party to whom it is addressed and may contain information that is confidential or privileged. Sierra Systems Group Inc. and its affiliates accept no responsibility for any loss or damage suffered by any person resulting from any unauthorized use of or reliance upon this Email. If you are not the intended recipient, you are hereby notified that any dissemination, copying or other use of this Email is prohibited. Please notify us of the error in communication by return email and destroy all copies of this Email. Thank you.

Attachment:
user_182205.ezm (zipped)Jeromy,
Thanks for your help. I was able to finally get the autocompleter to
work with the example you provided.
Strange behavior -- I can only get the autocompleter to work if the list
(array) is of the type String. If I try to return an array of my Entity
objects, or a Map I get the dojo error:
FATAL exception raised: TypeError: Value undefined (result of expression
this.data[x][0].toLowerCase) is not object.
I tried specifying the attribute dataField on the autocompleter, and it
didn't work either.
I should be able to serialize the entity objects right? The JSON that
was passed back to the browser looked like it serialized my objects just
fine.
Again, thanks to all the people who replied to my question.
MG
-----Original Message-----
From: Hodgins, Grant [mailto:GrantHodgins@(protected)]
Sent: Monday, February 04, 2008 12:31 PM
To: Struts Users Mailing List
Subject: RE: AjaxTag 1.3 support?
Thanks for the insight Jeremy.
I totally agree that writing to the response is not an elegant solution.
But sometimes we choose quick solutions that work when a project
deadline looms.
The reason I initially chose AjaxTags was that the example for the
autocompleter combo in Struts Showcase didn't work in IE6(the last one):
http://www.planetstruts.org/struts2-showcase/ajax/autocompleter/
Grant
________________________________
From: Jeromy Evans [mailto:jeromy.evans@(protected)]
Sent: Fri 2/1/2008 4:35 PM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
My 2c:
I think this is a bad solution and shouldn't be encouraged. It's
marginally better than writing a custom servlet.
Struts2 ResultTypes [1] are designed specifically for controlling the
type and content of results from actions to separate the view from the
model, even if the "view" is XML data. Accessing the response and
writing to it directly isn't necessary except in the rarest of cases.
For Ajax/JS libraries that use JSON, the JSON Plugin (JSON ResultType)
[2] will serialize your action into JSON automatically
The XSL ResultType will serialize your action into XML if you provide a
stylesheet [3]
The REST plugin includes code to serialize your action into XML using
Xstream. [4]
My point is, your action can setup a model (eg. a javabean matching the
model expected by AjaxTag), and the ResultType can serialize it to the
output stream. In this case I'd create a custom result type using
XStream, but you could also use a XML template in a Tile, or have a
ResultType that accesses the instance created by AjaxXMLBuilder.
[1] http://struts.apache.org/2.0.11/docs/result-types.html
[2] http://cwiki.apache.org/S2PLUGINS/json-plugin.html
[3] http://struts.apache.org/2.0.11/docs/xsl-result.html
[4] http://xstream.codehaus.org/
[5] http://struts.apache.org/2.0.11/docs/result-configuration.html
regards
Jeromy Evans
Hodgins, Grant wrote:
> I was able to get the AjaxTags stuff working (with Tiles2 although I
don't think that matters at all).
>
> As Dave said, your action should return null since you want the action
to return XML in the response.
>
> Instead, in addition to returning a null result, I simply wrote the
xml to the response:
>
> AjaxXmlBuilder xml = new AjaxXmlBuilder();
>
> ... build your xml response ...
>
> response.setContentType("text/xml; charset=iso-8859-1");
> response.setHeader("Cache-Control", "no-store, max-age=0, no-cache,
must-revalidate");
> response.addHeader("Cache-Control", "post-check=0, pre-check=0");
> response.setHeader("Pragma", "no-cache");
>
> PrintWriter pw = response.getWriter();
> pw.write(xml.toString());
> pw.close();
>
> Hope this helps.
>
> Grant
>
> ________________________________
>
> From: Griffith, Michael * [mailto:Michael.Griffith@(protected)]
> Sent: Fri 2/1/2008 3:48 PM
> To: Struts Users Mailing List
> Subject: RE: AjaxTag 1.3 support?
>
>
>
> Dave,
>
> Thanks for the reply. I guess I should have said freemarker instead of
> sitemesh...? At any rate, when the docs don't match the release, it's
a
> bad thing.
>
> I shouldn't need to do any of this should I? Can you point me at a
> simple, minimalist example of the <s:autocompleter> tag?
>
> mg
>
> -----Original Message-----
> From: Dave Newton [mailto:newton.dave@(protected)]
> Sent: Friday, February 01, 2008 5:42 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
> --- "Griffith, Michael *" <Michael.Griffith@(protected):
>
>> public class QuestionAction extends BaseAction implements
>> ModelDriven<Question>, Preparable, ServletRequestAware,
>> ServletResponseAware {
>> public String getSearchTerm() throws Exception {
>> System.out.println("**** Question Search Term:" + qt);
>> List<Question> results=
>>
> questionService.getQuestions(qt);
>
>> AjaxXmlBuilder builder= new AjaxXmlBuilder();
>> builder.addItems(results, "questionType", "text");
>>
>> response.setContentType("text/xml");
>> response.setHeader("Cache-Control", "no-cache");
>> ServletOutputStream out = response.getOutputStream();
>> out.print(builder.toString());
>> out.close();
>>
>> return SUCCESS;
>> }
>>
>> My struts mapping:
>>
>> <package name="question" extends="base-pkg"
>> namespace="/question">
>> <action name="get-term" method="getSearchTerm"
>> class="...QuestionAction">
>> <result name="success"
>> type="tiles">question.panel</result>
>> </action>
>> </package>
>>
>
> If you're writing directly to the stream I doubt you'd even want to
> return
> anything other than a null from the action, no? What is the
> "question.panel"
> tile?
>
>
>> The struts 2 Ajax documentation seems manic and dated. It seems the
S2
>> Ajax implementation is tied closely to sitemesh, which I am not
using.
>>
>
> SiteMesh? The Ajax implementation isn't tied to SiteMesh at all.
>
> Dated? Much of the S2 Ajax documentation is for S2.1, which isn't even
> released yet. If anything, it's pre-dated.
>
> Dave
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
>
> ----Notice Regarding Confidentiality----
> This email, including any and all attachments, (this "Email") is
intended only for the party to whom it is addressed and may contain
information that is confidential or privileged. Sierra Systems Group
Inc. and its affiliates accept no responsibility for any loss or damage
suffered by any person resulting from any unauthorized use of or
reliance upon this Email. If you are not the intended recipient, you
are hereby notified that any dissemination, copying or other use of this
Email is prohibited. Please notify us of the error in communication by
return email and destroy all copies of this Email. Thank you.
>
>
>
------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.19.18/1255 - Release Date:
1/02/2008 9:59 AM
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)
----Notice Regarding Confidentiality----
This email, including any and all attachments, (this "Email") is
intended only for the party to whom it is addressed and may contain
information that is confidential or privileged. Sierra Systems Group
Inc. and its affiliates accept no responsibility for any loss or damage
suffered by any person resulting from any unauthorized use of or
reliance upon this Email. If you are not the intended recipient, you
are hereby notified that any dissemination, copying or other use of this
Email is prohibited. Please notify us of the error in communication by
return email and destroy all copies of this Email. Thank you.

Attachment:
user_182206.ezm (zipped)funny thing is that now I remember the code(duh!), it is in the struts
widget. It seems like the json is empty. Paste the section of your jsp
with the autocompleter and the json that your action is returning.
regards
musachy
On Feb 4, 2008 2:16 PM, Griffith, Michael *
<Michael.Griffith@(protected):
> Jeromy,
>
> Thanks for your help. I was able to finally get the autocompleter to
> work with the example you provided.
>
> Strange behavior -- I can only get the autocompleter to work if the list
> (array) is of the type String. If I try to return an array of my Entity
> objects, or a Map I get the dojo error:
>
> FATAL exception raised: TypeError: Value undefined (result of expression
> this.data[x][0].toLowerCase) is not object.
>
> I tried specifying the attribute dataField on the autocompleter, and it
> didn't work either.
>
> I should be able to serialize the entity objects right? The JSON that
> was passed back to the browser looked like it serialized my objects just
> fine.
>
> Again, thanks to all the people who replied to my question.
>
> MG
>
>
> -----Original Message-----
> From: Hodgins, Grant [mailto:GrantHodgins@(protected)]
> Sent: Monday, February 04, 2008 12:31 PM
> To: Struts Users Mailing List
> Subject: RE: AjaxTag 1.3 support?
>
> Thanks for the insight Jeremy.
>
> I totally agree that writing to the response is not an elegant solution.
> But sometimes we choose quick solutions that work when a project
> deadline looms.
>
> The reason I initially chose AjaxTags was that the example for the
> autocompleter combo in Struts Showcase didn't work in IE6(the last one):
> http://www.planetstruts.org/struts2-showcase/ajax/autocompleter/
>
> Grant
>
> ________________________________
>
> From: Jeromy Evans [mailto:jeromy.evans@(protected)]
> Sent: Fri 2/1/2008 4:35 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
>
>
> My 2c:
> I think this is a bad solution and shouldn't be encouraged. It's
> marginally better than writing a custom servlet.
>
> Struts2 ResultTypes [1] are designed specifically for controlling the
> type and content of results from actions to separate the view from the
> model, even if the "view" is XML data. Accessing the response and
> writing to it directly isn't necessary except in the rarest of cases.
>
> For Ajax/JS libraries that use JSON, the JSON Plugin (JSON ResultType)
> [2] will serialize your action into JSON automatically
> The XSL ResultType will serialize your action into XML if you provide a
> stylesheet [3]
> The REST plugin includes code to serialize your action into XML using
> Xstream. [4]
>
> My point is, your action can setup a model (eg. a javabean matching the
> model expected by AjaxTag), and the ResultType can serialize it to the
> output stream. In this case I'd create a custom result type using
> XStream, but you could also use a XML template in a Tile, or have a
> ResultType that accesses the instance created by AjaxXMLBuilder.
>
> [1] http://struts.apache.org/2.0.11/docs/result-types.html
> [2] http://cwiki.apache.org/S2PLUGINS/json-plugin.html
> [3] http://struts.apache.org/2.0.11/docs/xsl-result.html
> [4] http://xstream.codehaus.org/
> [5] http://struts.apache.org/2.0.11/docs/result-configuration.html
>
> regards
> Jeromy Evans
>
> Hodgins, Grant wrote:
> > I was able to get the AjaxTags stuff working (with Tiles2 although I
> don't think that matters at all).
> >
> > As Dave said, your action should return null since you want the action
> to return XML in the response.
> >
> > Instead, in addition to returning a null result, I simply wrote the
> xml to the response:
> >
> > AjaxXmlBuilder xml = new AjaxXmlBuilder();
> >
> > ... build your xml response ...
> >
> > response.setContentType("text/xml; charset=iso-8859-1");
> > response.setHeader("Cache-Control", "no-store, max-age=0, no-cache,
> must-revalidate");
> > response.addHeader("Cache-Control", "post-check=0, pre-check=0");
> > response.setHeader("Pragma", "no-cache");
> >
> > PrintWriter pw = response.getWriter();
> > pw.write(xml.toString());
> > pw.close();
> >
> > Hope this helps.
> >
> > Grant
> >
> > ________________________________
> >
> > From: Griffith, Michael * [mailto:Michael.Griffith@(protected)]
> > Sent: Fri 2/1/2008 3:48 PM
> > To: Struts Users Mailing List
> > Subject: RE: AjaxTag 1.3 support?
> >
> >
> >
> > Dave,
> >
> > Thanks for the reply. I guess I should have said freemarker instead of
> > sitemesh...? At any rate, when the docs don't match the release, it's
> a
> > bad thing.
> >
> > I shouldn't need to do any of this should I? Can you point me at a
> > simple, minimalist example of the <s:autocompleter> tag?
> >
> > mg
> >
> > -----Original Message-----
> > From: Dave Newton [mailto:newton.dave@(protected)]
> > Sent: Friday, February 01, 2008 5:42 PM
> > To: Struts Users Mailing List
> > Subject: Re: AjaxTag 1.3 support?
> >
> > --- "Griffith, Michael *" <Michael.Griffith@(protected):
> >
> >> public class QuestionAction extends BaseAction implements
> >> ModelDriven<Question>, Preparable, ServletRequestAware,
> >> ServletResponseAware {
> >> public String getSearchTerm() throws Exception {
> >> System.out.println("**** Question Search Term:" + qt);
> >> List<Question> results=
> >>
> > questionService.getQuestions(qt);
> >
> >> AjaxXmlBuilder builder= new AjaxXmlBuilder();
> >> builder.addItems(results, "questionType", "text");
> >>
> >> response.setContentType("text/xml");
> >> response.setHeader("Cache-Control", "no-cache");
> >> ServletOutputStream out = response.getOutputStream();
> >> out.print(builder.toString());
> >> out.close();
> >>
> >> return SUCCESS;
> >> }
> >>
> >> My struts mapping:
> >>
> >> <package name="question" extends="base-pkg"
> >> namespace="/question">
> >> <action name="get-term" method="getSearchTerm"
> >> class="...QuestionAction">
> >> <result name="success"
> >> type="tiles">question.panel</result>
> >> </action>
> >> </package>
> >>
> >
> > If you're writing directly to the stream I doubt you'd even want to
> > return
> > anything other than a null from the action, no? What is the
> > "question.panel"
> > tile?
> >
> >
> >> The struts 2 Ajax documentation seems manic and dated. It seems the
> S2
> >> Ajax implementation is tied closely to sitemesh, which I am not
> using.
> >>
> >
> > SiteMesh? The Ajax implementation isn't tied to SiteMesh at all.
> >
> > Dated? Much of the S2 Ajax documentation is for S2.1, which isn't even
> > released yet. If anything, it's pre-dated.
> >
> > Dave
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> >
> >
> >
> >
> > ----Notice Regarding Confidentiality----
> > This email, including any and all attachments, (this "Email") is
> intended only for the party to whom it is addressed and may contain
> information that is confidential or privileged. Sierra Systems Group
> Inc. and its affiliates accept no responsibility for any loss or damage
> suffered by any person resulting from any unauthorized use of or
> reliance upon this Email. If you are not the intended recipient, you
> are hereby notified that any dissemination, copying or other use of this
> Email is prohibited. Please notify us of the error in communication by
> return email and destroy all copies of this Email. Thank you.
> >
> >
> >
> ------------------------------------------------------------------------
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@(protected)
> > For additional commands, e-mail: user-help@(protected)
> >
> ------------------------------------------------------------------------
> >
> > No virus found in this incoming message.
> > Checked by AVG Free Edition.
> > Version: 7.5.516 / Virus Database: 269.19.18/1255 - Release Date:
> 1/02/2008 9:59 AM
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
>
>
>
> ----Notice Regarding Confidentiality----
> This email, including any and all attachments, (this "Email") is
> intended only for the party to whom it is addressed and may contain
> information that is confidential or privileged. Sierra Systems Group
> Inc. and its affiliates accept no responsibility for any loss or damage
> suffered by any person resulting from any unauthorized use of or
> reliance upon this Email. If you are not the intended recipient, you
> are hereby notified that any dissemination, copying or other use of this
> Email is prohibited. Please notify us of the error in communication by
> return email and destroy all copies of this Email. Thank you.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
--
"Hey you! Would you help me to carry the stone?" Pink Floyd

Attachment:
user_182202.ezm (zipped)Doesn't that need to be theme="ajax"?
Serge Bornow wrote:
> Hello Jeromy,
>
> I do have : <s:head theme="simple" />
> Also, i use Netbeans to generate respective get/set method so they are
> JavaBean std compliant.
>
> The issue for me unfortunately is getting the value back , it seems to
> lose it.
> :(
>
> Thanks for feedback though.
>
> Serge
>
> Jeromy Evans wrote:
>> Hi Serge,
>>
>> You'll find many emails in this forum relating to DatePicker
>> problems. Some of the solutions are here:
>> http://cwiki.apache.org/S2WIKI/vault.html
>>
>> In this case though, is it possible you've forgotten the s:head tag at
>> the top of the page?
>>
>> Serge Bornow wrote:
>>> Hi All,
>>>
>>> I:'ve been battling this for many hours.
>>> I hope someone can help.
>>> Using JDK 1.5, Struts 2.0.11
>>>
>>>
>>> My property:
>>> shoot_date of type Date
>>> has get and set and on execute()
>>> set's the default date to today's date
>>> setShoot_Date(new Date);
>>>
>>> on the form:
>>> <s:datetimepicker name="shoot_date" displayFormat="MM/dd/yyyy" />
>>> even without displayformat it doesn't work.
>>>
>>> what happens is that i click the submit button that submits an action
>>> that executes a method that tries to read the shoot_date and it's null.
>>>
>>> Hence the error in my log:
>>>
>>>
java.text.ParseException: Unparseable date: ""
>>> at
java.text.DateFormat.parse (
DateFormat.java:337)
>>> at
>>>
org.apache.struts2.components.DateTimePicker.format (
DateTimePicker.java:309)
>>>
>>>
>>>
>>> Does anyone have a good working example?
>>>
>>> Thank you very much,
>>>
>>> Serge
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@(protected)
>>> For additional commands, e-mail: user-help@(protected)
>>>
>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@(protected)
>> For additional commands, e-mail: user-help@(protected)
>>
>>
>>