struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Griffith, Michael *" <Michael.Griff...@fda.hhs.gov>
Subject RE: AjaxTag 1.3 support?
Date Mon, 04 Feb 2008 20:20:33 GMT
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@gmail.com] 
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@fda.hhs.gov> wrote:
> 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@gmail.com]
> 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@fda.hhs.gov> wrote:
> > 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@SierraSystems.com]
> > 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@blueskyminds.com.au]
> > 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@fda.hhs.gov]
> > > 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@yahoo.com]
> > > Sent: Friday, February 01, 2008 5:42 PM
> > > To: Struts Users Mailing List
> > > Subject: Re: AjaxTag 1.3 support?
> > >
> > > --- "Griffith, Michael *" <Michael.Griffith@fda.hhs.gov> wrote:
> > >
> > >> 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@struts.apache.org
> > > For additional commands, e-mail: user-help@struts.apache.org
> > >
> > >
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > For additional commands, e-mail: user-help@struts.apache.org
> > >
> > >
> > >
> > >
> > >
> > > ----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@struts.apache.org
> > > For additional commands, e-mail: user-help@struts.apache.org
> > >
> >
>
------------------------------------------------------------------------
> > >
> > > 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@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
> >
> >
> >
> > ----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@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
>
>
>
> --
> "Hey you! Would you help me to carry the stone?" Pink Floyd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>



-- 
"Hey you! Would you help me to carry the stone?" Pink Floyd

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message