Author Login
Post Reply
user Digest 4 Feb 2008 20:44:08 -0000 Issue 7844
Topics (messages 182207 through 182214):
DAO pattern
182207 by: Zhang, Larry \(L.\)
182211 by: Manos Batsis
[OT] Re: DAO pattern
182208 by: Antonio Petrelli
Re: AjaxTag 1.3 support?
182209 by: Griffith, Michael *
182210 by: Musachy Barroso
182212 by: Griffith, Michael *
182213 by: Musachy Barroso
182214 by: Griffith, Michael *
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_182207.ezm (zipped)Sorry if this is not too on topic.
I have a user object whose data is from three resources: Db2, LDAP, and
other flat file. Per dao pattern, do you think I should have three daos
or one dao to encapsulate the data access implications?

Attachment:
user_182211.ezm (zipped)Zhang, Larry (L.) wrote:
> I have a user object whose data is from three resources: Db2, LDAP, and
> other flat file. Per dao pattern, do you think I should have three daos
> or one dao to encapsulate the data access implications?
Depends on what is easier for you. This will not effect your code if you
your DAOs implement a common interface and your code uses a DAO Factory
to obtain the right DAO instance implementing that interface.
Personally, I have the habit of making one DAO per business entity, so I
would join the three you mention into one. This or the opposite is
mostly useful as a convention shared between members etc.
Cheers,
Manos

Attachment:
user_182208.ezm (zipped)2008/2/4, Zhang, Larry (L.) <lzhang20@(protected)>:
> Sorry if this is not too on topic.
>
> I have a user object whose data is from three resources: Db2, LDAP, and
> other flat file. Per dao pattern, do you think I should have three daos
> or one dao to encapsulate the data access implications?
It depends.
If you can have the user object from one source at a time, then the
best approach IMHO is one interface/3 implementations.
If you are getting this user object from these sources at the same
time, use one DAO, and manage connections inside it.
Ciao
Antonio

Attachment:
user_182209.ezm (zipped)Musachy
Here is the autocompleter tag and the JSON returned...
<s:label name="text" value="Search for Question Text:" />
<s:url id="search" namespace="/search"
value="/search/searchByText.action"/>
<s:autocompleter theme="ajax" href="%{search}"
name="text"
dataFieldName="text"
loadOnTextChange="true"
indicator="indicator"
dropdownHeight="300"
cssStyle="width: 200px;"
searchType="substring"
autoComplete="false"
showDownArrow="false"
loadMinimumCount="3"/>
<img id="indicator"
src="${pageContext.request.contextPath}/images/indicator.gif"
alt="Loading..." style="display:none"/>
[JSON][{"id":420,"questionType":{"declaringClass":"class
gov.hhs.fda.datacall.model.QuestionType"},"text":"Is your Java
Application a ME, SE or EE
application?"},{"id":440,"questionType":{"declaringClass":"class
gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
Application is an SE application does it use Java Web
Start?"},{"id":450,"questionType":{"declaringClass":"class
gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
Application is a Java Web Application, list the application server used
for production"},{"id":490,"questionType":{"declaringClass":"class
gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
Services Technologies
Used"},{"id":500,"questionType":{"declaringClass":"class
gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
Application Technologies Used for
presentation"},{"id":510,"questionType":{"declaringClass":"class
gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java EE
Technologies used in your application"}]
-----Original Message-----
From: Musachy Barroso [mailto:musachy@(protected)]
Sent: Monday, February 04, 2008 1:22 PM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
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
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

Attachment:
user_182210.ezm (zipped)to use the dataFIeldName, you have to return something like:
{
"state" : [
["Alabama","AL"],
["Alaska","AK"]
]
}
if you are using 2.1 check this link:
http://cwiki.apache.org/WW/ajax-and-javascript-recipes.html#AjaxandJavaScriptRecipes-Autocompleter
otherwise just an array of arrays should do:
[
["Alabama", "AL"],
["Alaska", "AK"]
]
musachy
On Feb 4, 2008 2:46 PM, Griffith, Michael *
<Michael.Griffith@(protected):
> Musachy
>
> Here is the autocompleter tag and the JSON returned...
>
> <s:label name="text" value="Search for Question Text:" />
> <s:url id="search" namespace="/search"
> value="/search/searchByText.action"/>
> <s:autocompleter theme="ajax" href="%{search}"
> name="text"
> dataFieldName="text"
> loadOnTextChange="true"
> indicator="indicator"
> dropdownHeight="300"
> cssStyle="width: 200px;"
> searchType="substring"
> autoComplete="false"
> showDownArrow="false"
> loadMinimumCount="3"/>
> <img id="indicator"
> src="${pageContext.request.contextPath}/images/indicator.gif"
> alt="Loading..." style="display:none"/>
>
>
> [JSON][{"id":420,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"Is your Java
> Application a ME, SE or EE
> application?"},{"id":440,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> Application is an SE application does it use Java Web
> Start?"},{"id":450,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> Application is a Java Web Application, list the application server used
> for production"},{"id":490,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> Services Technologies
> Used"},{"id":500,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> Application Technologies Used for
> presentation"},{"id":510,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java EE
> Technologies used in your application"}]
>
>
> -----Original Message-----
> From: Musachy Barroso [mailto:musachy@(protected)]
> Sent: Monday, February 04, 2008 1:22 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
> 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
>
> ---------------------------------------------------------------------
> 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

Attachment:
user_182212.ezm (zipped)Musachy,
I must have missed your point. Isn't the idea of using the JSON plug-in
so you don't have to iterate and create the list? If I have an array or
Entity objects or maps, isn't there a way that the plug-in will create
the JSON specified below?
MG
-----Original Message-----
From: Musachy Barroso [mailto:musachy@(protected)]
Sent: Monday, February 04, 2008 1:56 PM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
to use the dataFIeldName, you have to return something like:
{
"state" : [
["Alabama","AL"],
["Alaska","AK"]
]
}
if you are using 2.1 check this link:
http://cwiki.apache.org/WW/ajax-and-javascript-recipes.html#AjaxandJavaS
criptRecipes-Autocompleter
otherwise just an array of arrays should do:
[
["Alabama", "AL"],
["Alaska", "AK"]
]
musachy
On Feb 4, 2008 2:46 PM, Griffith, Michael *
<Michael.Griffith@(protected):
> Musachy
>
> Here is the autocompleter tag and the JSON returned...
>
> <s:label name="text" value="Search for Question Text:" />
> <s:url id="search" namespace="/search"
> value="/search/searchByText.action"/>
> <s:autocompleter theme="ajax" href="%{search}"
> name="text"
> dataFieldName="text"
> loadOnTextChange="true"
> indicator="indicator"
> dropdownHeight="300"
> cssStyle="width: 200px;"
> searchType="substring"
> autoComplete="false"
> showDownArrow="false"
> loadMinimumCount="3"/>
> <img id="indicator"
> src="${pageContext.request.contextPath}/images/indicator.gif"
> alt="Loading..." style="display:none"/>
>
>
> [JSON][{"id":420,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"Is your Java
> Application a ME, SE or EE
> application?"},{"id":440,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> Application is an SE application does it use Java Web
> Start?"},{"id":450,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> Application is a Java Web Application, list the application server
used
> for production"},{"id":490,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> Services Technologies
> Used"},{"id":500,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> Application Technologies Used for
> presentation"},{"id":510,"questionType":{"declaringClass":"class
> gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java EE
> Technologies used in your application"}]
>
>
> -----Original Message-----
> From: Musachy Barroso [mailto:musachy@(protected)]
> Sent: Monday, February 04, 2008 1:22 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
> 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
>
> ---------------------------------------------------------------------
> 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_182213.ezm (zipped)yes, but the output will depend on what you feed the JSON result.
musachy
On Feb 4, 2008 3:20 PM, Griffith, Michael *
<Michael.Griffith@(protected):
> Musachy,
>
> I must have missed your point. Isn't the idea of using the JSON plug-in
> so you don't have to iterate and create the list? If I have an array or
> Entity objects or maps, isn't there a way that the plug-in will create
> the JSON specified below?
>
> MG
>
> -----Original Message-----
> From: Musachy Barroso [mailto:musachy@(protected)]
> Sent: Monday, February 04, 2008 1:56 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
>
> to use the dataFIeldName, you have to return something like:
>
> {
> "state" : [
> ["Alabama","AL"],
> ["Alaska","AK"]
> ]
> }
>
> if you are using 2.1 check this link:
>
> http://cwiki.apache.org/WW/ajax-and-javascript-recipes.html#AjaxandJavaS
> criptRecipes-Autocompleter
>
> otherwise just an array of arrays should do:
>
> [
> ["Alabama", "AL"],
> ["Alaska", "AK"]
> ]
>
> musachy
>
> On Feb 4, 2008 2:46 PM, Griffith, Michael *
> <Michael.Griffith@(protected):
> > Musachy
> >
> > Here is the autocompleter tag and the JSON returned...
> >
> > <s:label name="text" value="Search for Question Text:" />
> > <s:url id="search" namespace="/search"
> > value="/search/searchByText.action"/>
> > <s:autocompleter theme="ajax" href="%{search}"
> > name="text"
> > dataFieldName="text"
> > loadOnTextChange="true"
> > indicator="indicator"
> > dropdownHeight="300"
> > cssStyle="width: 200px;"
> > searchType="substring"
> > autoComplete="false"
> > showDownArrow="false"
> > loadMinimumCount="3"/>
> > <img id="indicator"
> > src="${pageContext.request.contextPath}/images/indicator.gif"
> > alt="Loading..." style="display:none"/>
> >
> >
> > [JSON][{"id":420,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"Is your Java
> > Application a ME, SE or EE
> > application?"},{"id":440,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> > Application is an SE application does it use Java Web
> > Start?"},{"id":450,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> > Application is a Java Web Application, list the application server
> used
> > for production"},{"id":490,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> > Services Technologies
> > Used"},{"id":500,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> > Application Technologies Used for
> > presentation"},{"id":510,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java EE
> > Technologies used in your application"}]
> >
> >
> > -----Original Message-----
> > From: Musachy Barroso [mailto:musachy@(protected)]
> > Sent: Monday, February 04, 2008 1:22 PM
> > To: Struts Users Mailing List
> > Subject: Re: AjaxTag 1.3 support?
> >
> > 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
> >
> > ---------------------------------------------------------------------
> > 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)
>
>
>
>
> ---------------------------------------------------------------------
> 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_182214.ezm (zipped)So, if you have an array of Entity objects, in my case question:
How can I produce?
{
"question" : [
["1","question 1 text..."],
["2","question 2 text..."]
]
}
-----Original Message-----
From: Musachy Barroso [mailto:musachy@(protected)]
Sent: Monday, February 04, 2008 2:37 PM
To: Struts Users Mailing List
Subject: Re: AjaxTag 1.3 support?
yes, but the output will depend on what you feed the JSON result.
musachy
On Feb 4, 2008 3:20 PM, Griffith, Michael *
<Michael.Griffith@(protected):
> Musachy,
>
> I must have missed your point. Isn't the idea of using the JSON
plug-in
> so you don't have to iterate and create the list? If I have an array
or
> Entity objects or maps, isn't there a way that the plug-in will create
> the JSON specified below?
>
> MG
>
> -----Original Message-----
> From: Musachy Barroso [mailto:musachy@(protected)]
> Sent: Monday, February 04, 2008 1:56 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
>
> to use the dataFIeldName, you have to return something like:
>
> {
> "state" : [
> ["Alabama","AL"],
> ["Alaska","AK"]
> ]
> }
>
> if you are using 2.1 check this link:
>
>
http://cwiki.apache.org/WW/ajax-and-javascript-recipes.html#AjaxandJavaS
> criptRecipes-Autocompleter
>
> otherwise just an array of arrays should do:
>
> [
> ["Alabama", "AL"],
> ["Alaska", "AK"]
> ]
>
> musachy
>
> On Feb 4, 2008 2:46 PM, Griffith, Michael *
> <Michael.Griffith@(protected):
> > Musachy
> >
> > Here is the autocompleter tag and the JSON returned...
> >
> > <s:label name="text" value="Search for Question Text:" />
> > <s:url id="search" namespace="/search"
> > value="/search/searchByText.action"/>
> > <s:autocompleter theme="ajax" href="%{search}"
> > name="text"
> > dataFieldName="text"
> > loadOnTextChange="true"
> > indicator="indicator"
> > dropdownHeight="300"
> > cssStyle="width: 200px;"
> > searchType="substring"
> > autoComplete="false"
> > showDownArrow="false"
> > loadMinimumCount="3"/>
> > <img id="indicator"
> > src="${pageContext.request.contextPath}/images/indicator.gif"
> > alt="Loading..." style="display:none"/>
> >
> >
> > [JSON][{"id":420,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"Is your Java
> > Application a ME, SE or EE
> > application?"},{"id":440,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> > Application is an SE application does it use Java Web
> > Start?"},{"id":450,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"If your Java
> > Application is a Java Web Application, list the application server
> used
> > for production"},{"id":490,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> > Services Technologies
> > Used"},{"id":500,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java Web
> > Application Technologies Used for
> > presentation"},{"id":510,"questionType":{"declaringClass":"class
> > gov.hhs.fda.datacall.model.QuestionType"},"text":"List any Java EE
> > Technologies used in your application"}]
> >
> >
> > -----Original Message-----
> > From: Musachy Barroso [mailto:musachy@(protected)]
> > Sent: Monday, February 04, 2008 1:22 PM
> > To: Struts Users Mailing List
> > Subject: Re: AjaxTag 1.3 support?
> >
> > 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
> >
> >
---------------------------------------------------------------------
> > 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)
>
>
>
>
> ---------------------------------------------------------------------
> 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)