struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Musachy Barroso" <musa...@gmail.com>
Subject Re: AjaxTag 1.3 support?
Date Tue, 05 Feb 2008 22:01:02 GMT
I see, but why are you doing that? If you are going to build the json
string by yourself, then you don't need to use the json plugin at all,
just write it to the outputstream and return null on your action. The
whole point behind using the json plugin is that it will serialize
your object model to json for you.

musachy

On Feb 5, 2008 2:36 PM, Griffith, Michael *
<Michael.Griffith@fda.hhs.gov> wrote:
> Musachy,
>
> This is the actual response from the action when I invoke it from the
> browser:
>
> "{\"questions\":{\"420\":\"Is your Java Application a ME, SE or EE
> application?\",\"440\":\"If your Java Application is an SE application
> does it use Java Web Start?\",\"450\":\"If your Java Application is a
> Java Web Application, list the application server used for
> production\",\"490\":\"List any Java Web Services Technologies
> Used\",\"500\":\"List any Java Web Application Technologies Used for
> presentation\",\"510\":\"List any Java EE Technologies used in your
> application\"}}"
>
> I am building the JSON string and returning it from the action...
>         private static final Character QUOTE= '"';
>         private static final String DELIM= ":";
>         private static final String COMMA=",";
>         private static final String OPEN_BRACE="{";
>         private static final String CLOSE_BRACE="}";
>
>         StrinBuffer sb= new StringBuffer();
>                 StringBuffer sb= new StringBuffer();
>
> sb.append(OPEN_BRACE).append(QUOTE).append("questions").append(QUOTE);
>                 sb.append(DELIM).append(OPEN_BRACE);
>                 for (Question question : list) {
>
> sb.append(QUOTE).append(question.getId().toString()).append(QUOTE).appen
> d(DELIM).append(QUOTE).append(question.getText()).append(QUOTE).append(C
> OMMA);
>
> }
> ...
>
> The String actually looks like this before its serialized by the json
> result:
>
> {"questions":{"420":"Is your Java Application a ME, SE or EE
> application?","440":"If your Java Application is an SE application does
> it use Java Web Start?","450":"If your Java Application is a Java Web
> Application, list the application server used for
> production","490":"List any Java Web Services Technologies
> Used","500":"List any Java Web Application Technologies Used for
> presentation","510":"List any Java EE Technologies used in your
> application"}}
>
> -----Original Message-----
> From: Musachy Barroso [mailto:musachy@gmail.com]
>
> Sent: Tuesday, February 05, 2008 1:20 PM
> To: Struts Users Mailing List
> Subject: Re: AjaxTag 1.3 support?
>
> Oh I am sorry about that! (doh) Do you see the quoutes escaped in
> firebug or something? As far as I remember the plugin doesnt escape
> the quoutes. If you put the url in your browser you should see the
> generated json as it actually is.
>
> musachy
>
> On Feb 5, 2008 2:12 PM, Griffith, Michael *
> <Michael.Griffith@fda.hhs.gov> wrote:
> > Musachy,
> >
> > Huh? That can't be right...
> >
> > First of all, the document says it wraps the JSON result in /* ... */
> > comments, it doesn't say anything about escaping quotes.
> >
> > Second, the default value is false ;-)  Adding this to the result
> > configuration did nothing to my result.  This seems like a bug.
> >
> > MG
> >
> > -----Original Message-----
> > From: Musachy Barroso [mailto:musachy@gmail.com]
> >
> > Sent: Tuesday, February 05, 2008 12:14 PM
> > To: Struts Users Mailing List
> > Subject: Re: AjaxTag 1.3 support?
> >
> > add:
> >
> > <param name="wrapWithComments">false</param>
> >
> > to the result. See the section "Wrap with Comments" here:
> >
> > http://cwiki.apache.org/S2PLUGINS/json-plugin.html
> >
> > musachy
> >
> > On Feb 5, 2008 12:58 PM, Griffith, Michael *
> > <Michael.Griffith@fda.hhs.gov> wrote:
> > > Musachy,
> > >
> > > I've looked over the documentation, and looked in the JSONWriter
> class
> > > -- and it is not obvious to me how to configure this plugin setting.
> > > How is it done?
> > >
> > > MG
> > >
> > > -----Original Message-----
> > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > Sent: Tuesday, February 05, 2008 11:23 AM
> > > To: Struts Users Mailing List
> > >
> > > Subject: Re: AjaxTag 1.3 support?
> > >
> > > Don't give up so easily :). That is just a setting on the json
> plugin
> > > to prevent cross site  scripting, and can be disabled.
> > >
> > > musachy
> > >
> > > On Feb 5, 2008 11:27 AM, Griffith, Michael *
> > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > Well, to answer my own question -- the answer is no. The JSON
> result
> > > > serialization process escapes quotation marks, so my response that
> > > > looked like this before serialization:
> > > >
> > > > {"questions":{"420":"Is your Java Application a ME, SE or EE
> > > > application?","440":"If your Java Application is an SE application
> > > does
> > > > it use Java Web Start?","450":"If your Java Application is a Java
> > Web
> > > > Application, list the application server used for
> > > > production","490":"List any Java Web Services Technologies
> > > > Used","500":"List any Java Web Application Technologies Used for
> > > > presentation","510":"List any Java EE Technologies used in your
> > > > application"}}
> > > >
> > > > Looks like this after serialization:
> > > >
> > > > "{\"questions\":{\"420\":\"Is your Java Application a ME, SE or EE
> > > > application?\",\"440\":\"If your Java Application is an SE
> > application
> > > > does it use Java Web Start?\",\"450\":\"If your Java Application
> is
> > a
> > > > Java Web Application, list the application server used for
> > > > production\",\"490\":\"List any Java Web Services Technologies
> > > > Used\",\"500\":\"List any Java Web Application Technologies Used
> for
> > > > presentation\",\"510\":\"List any Java EE Technologies used in
> your
> > > > application\"}}"
> > > >
> > > > Making it unrecognizable to the autocompleter. This is pretty
> > > > frustrating to me. Maybe I am expecting this to do something that
> it
> > > was
> > > > never designed to do. My end goal was to be able to evaluate the
> ID
> > of
> > > > the question that the user selected from the autocompleter.
> > > >
> > > > I'm giving up this path and looking elsewhere.  Thanks to everyone
> > > that
> > > > replied to my question and tried to help me.
> > > >
> > > > MG
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Griffith, Michael * [mailto:Michael.Griffith@fda.hhs.gov]
> > > > Sent: Tuesday, February 05, 2008 8:32 AM
> > > > To: Struts Users Mailing List
> > > > Subject: RE: AjaxTag 1.3 support?
> > > >
> > > > Musachy,
> > > >
> > > > I can't seem to create the right blend of Entity objects/list/maps
> > to
> > > > allow the JSON plug in to serialize this response for me. If I
> > create
> > > > the string below using a loop, can I return it from the JSON plug
> in
> > > > without the plug in doing anything further to it?
> > > >
> > > > In other words, does the plug in look at what it is trying to
> > > serialize
> > > > and say, "Hey this is already valid JSON, I don't need to do
> > anything
> > > to
> > > > it..." or will it try to add additional info to the string
> returned?
> > > >
> > > > I'm guessing the shortest path for me is to just create the string
> > in
> > > my
> > > > own serialization loop, but I don't want to confuse the plug in --
> > if
> > > > that makes any sense.
> > > >
> > > > MG
> > > >
> > > > -----Original Message-----
> > > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > > Sent: Monday, February 04, 2008 6:30 PM
> > > > To: Struts Users Mailing List
> > > > Subject: Re: AjaxTag 1.3 support?
> > > >
> > > > Right on.
> > > >
> > > > On Feb 4, 2008 6:45 PM, Griffith, Michael *
> > > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > Dave,
> > > > >
> > > > > I think the bigger problem is the JSON that is returned, while
> it
> > > may
> > > > be
> > > > > valid, it not in the right structure expected. I should be
> > > generating
> > > > > JSON like this:
> > > > >
> > > > > {"questions":{"420":"Is your Java Application a ME, SE or EE
> > > > > application?","440":"If your Java Application is an SE
> application
> > > > does
> > > > > it use Java Web Start?"}}
> > > > >
> > > > > The [] brackets seem to be ignored by the parser.
> > > > >
> > > > > -----Original Message-----
> > > > > From: Dave Newton [mailto:newton.dave@yahoo.com]
> > > > > Sent: Monday, February 04, 2008 5:34 PM
> > > > > To: Struts Users Mailing List
> > > > > Subject: RE: AjaxTag 1.3 support?
> > > > >
> > > > > ...
> > > > >
> > > > >
> > > > > That's probably an issue.
> > > > >
> > > > > --- "Griffith, Michael *" <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > > Yea, I think so -- I copied and pasted this from the log
> > > > > file/console...
> > > > > >
> > > > > > From: Dave Newton [mailto:newton.dave@yahoo.com]
> > > > > >
> > > > > > Is it generating those brackets around your JSON?
> > > > > >
> > > > > > --- "Griffith, Michael *" <Michael.Griffith@fda.hhs.gov>
> wrote:
> > > > > >
> > > > > > > Musachy,
> > > > > > >
> > > > > > > Thanks for your many replies... Does this JSON look like
the
> > > right
> > > > > > > format? As far as I can tell, it matches your snippet below
> --
> > > but
> > > > I
> > > > > > get
> > > > > > > the same dojo parting error.
> > > > > > >
> > > > > > > [{"questions":{"420":"Is your Java Application a ME, SE
or
> EE
> > > > > > > application?"}},{"questions":{"440":"If your Java
> Application
> > is
> > > > an
> > > > > SE
> > > > > > > application does it use Java Web
> > > Start?"}},{"questions":{"450":"If
> > > > > > your
> > > > > > > Java Application is a Java Web Application, list the
> > application
> > > > > > server
> > > > > > > used for production"}}]
> > > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > > > > > Sent: Monday, February 04, 2008 3:52 PM
> > > > > > > To: Struts Users Mailing List
> > > > > > > Subject: Re: AjaxTag 1.3 support?
> > > > > > >
> > > > > > > The rule to use a map (simplest one) was added on 2.1,
on
> > 2.0.x
> > > > the
> > > > > > > easiest way to generate the json is to have an object with
a
> > map
> > > > > field
> > > > > > > that matches the name of "dataFieldName" in the
> autocompleter
> > > tag:
> > > > > > >
> > > > > > > class QuestionJson {
> > > > > > >   private Map questions;
> > > > > > >   ....
> > > > > > > }
> > > > > > >
> > > > > > > public QuestionJson getQuestionJson() {
> > > > > > >   Question q= ... [from my list]
> > > > > > >    Map m = new HaswhMap();
> > > > > > >    m.put("Key1", q.getQuestion1());
> > > > > > >    m.put("Key2", q.getQuestion2());
> > > > > > >    return new QuestionJson(m);
> > > > > > > }
> > > > > > >
> > > > > > > <s:autocompleter ... dataFieldName="questions" ../>
> > > > > > >
> > > > > > > that will generate something like:
> > > > > > >
> > > > > > > {
> > > > > > >   "questions": {
> > > > > > >      "Key1" : "Question 1",
> > > > > > >      "Key2" : "Question 2",
> > > > > > >   }
> > > > > > > }
> > > > > > >
> > > > > > > //that's the idea, but I typed out of what I remember which
> is
> > > > often
> > > > > > not
> > > > > > > good :)
> > > > > > >
> > > > > > > musachy
> > > > > > >
> > > > > > > On Feb 4, 2008 4:34 PM, Griffith, Michael *
> > > > > > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > > > > Musachy,
> > > > > > > >
> > > > > > > > I'm still not getting it...
> > > > > > > > I am now serializing a list of maps with the entity
id and
> > > text
> > > > I
> > > > > > > > want...
> > > > > > > >
> > > > > > > > Map<String,String> m= new HashMap<String,String>();
> > > > > > > > Question q= ... [from my list]
> > > > > > > > m.put("id", q.getId().toString());
> > > > > > > > m.put("text", q.getText());
> > > > > > > > newList.add(m);
> > > > > > > >
> > > > > > > > And my JSON result looks:
> > > > > > > >
> > > > > > > > [JSON][{"text":"Is your Java Application a ME, SE
or EE
> > > > > > > > application?","id":"420"},{"text":"If your Java
> Application
> > is
> > > > an
> > > > > SE
> > > > > > > > application does it use Java Web
> > > Start?","id":"440"},{"text":"If
> > > > > > your
> > > > > > > > Java Application is a Java Web Application, list the
> > > application
> > > > > > > server
> > > > > > > > used for production","id":"450"},{"text":"List any
Java
> Web
> > > > > Services
> > > > > > > > Technologies Used","id":"490"},{"text":"List any Java
Web
> > > > > > Application
> > > > > > > > Technologies Used for
> > presentation","id":"500"},{"text":"List
> > > > any
> > > > > > Java
> > > > > > > > EE Technologies used in your application","id":"510"}]
> > > > > > > >
> > > > > > > > I added the @JSON annotation as such:
> > > > > > > >
> > > > > > > >         @JSON(name="question")
> > > > > > > >         public List<Map<String,String>>
getNewList(){
> > > > > > > >                 return newList;
> > > > > > > >         }
> > > > > > > >
> > > > > > > > But it appears to be ignored.
> > > > > > > >
> > > > > > > > MG
> > > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: Musachy Barroso [mailto:musachy@gmail.com]
> > > > > > > >
> > > > > > > > Sent: Monday, February 04, 2008 2:53 PM
> > > > > > > > To: Struts Users Mailing List
> > > > > > > > Subject: Re: AjaxTag 1.3 support?
> > > > > > > >
> > > > > > > > Take a look here:
> > > > > > > >
> > > > > > > > http://cwiki.apache.org/S2PLUGINS/json-plugin.html
> > > > > > > >
> > > > > > > > musachy
> > > > > > > >
> > > > > > > > On Feb 4, 2008 3:43 PM, Griffith, Michael *
> > > > > > > > <Michael.Griffith@fda.hhs.gov> wrote:
> > > > > > > > > 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@gmail.com]
> > > > > > > > > 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@fda.hhs.gov> wrote:
> > > > > > > > > > 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...
> > > > > > > > > > >
> > > > > >
> > > > > === message truncated ===
> > > > >
> > > > >
> > > > >
> > >
> ---------------------------------------------------------------------
> > > > > 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
> > > >
> > > >
> > > >
> > > >
> > > >
> > ---------------------------------------------------------------------
> > > > 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
> >
> >
>
>
>
> --
> "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


Mime
View raw message