Wen-Jung Chen wrote:
Hi,

I have a scenario that user enters data in the text box in the browser and
clicks Continue button. I send this value into Struts Action class which
checks against database to return me the true or false value. Based on this
true or false value, I will display or hide <div> in the same page.

I am using synchornous Ajax in Javascript to call Struts Action class. In
Struts action class I set the status in Session attribute. Once Ajax call
returns, I can get the status in javascript and display or hide <div>
accordingly.

Umm, how exactly are you accessing the session object from Javascript? That's a neat trick! ;) LOL

Is there any way to use request attribute instead of session attribute for
this?

Generally speaking, if your hand-coding your AJAX (and even if you weren't this might still be true), you would just forward to a JSP from your Action, same as always, and render some suitable response that you then handle in your client. In that case, you can put everything in request scope and render the page using the usual bag of tricks (i.e., JSTL, Struts tags, whatever). In your case, the JSP, in its entirety, may literally just be:

<%=request.getAttribute("displayOrNot")%>

...where the value of displayOrNot is "true" or "false" (whether it's a String or a Boolean, your choice). Then the client just does:

if (XMLHttpRequestInstance.responseText == "true") {
  // Show DIV
} else {
  // Hide DIV
}

Or should I use JSON RPC to do this?

It might make things easier, yes. Unless you have a specific need, I for one recommend using a good library to avoid the intricacies of AJAX (which can sneak up and bite you if you aren't careful). Specifically, I'd take a look at DWR as well... very similar conceptually to JSON RPC, but I suspect more mature and widely used. Note though that you probably won't be calling a Struts Action with either, and even if you do, it won't be through the normal request processing cycle, so consider if that's what you really need to do. If you do need the whole request processing cycle, you might also have a look at AjaxParts Taglib (APT) in Java Web Parts (JWP):

http://javawebparts.sourceforge.net

Directly relevant link:

http://javawebparts.sourceforge.net/javadocs/javawebparts/ajaxparts/taglib/package-summary.html

These docs will give you all the details, I'd suggest after you read them that you grab the JWP sample app to see it in action. APT has the benefit of eliminating all your client-side code (and in your case specifically, it's even a trivial exercise). There are of course plenty of other good libraries to choose from, Dojo and Prototype float to the top pretty quickly, but both will still require you to hand-code Javascript, APT lets you avoid that entirely (usually).

Thanks,
Wen-Jung

Frank


--
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com
AIM/Yahoo: fzammetti
MSN: [EMAIL PROTECTED]
Author of "Practical Ajax Projects With Java Technology"
 (2006, Apress, ISBN 1-59059-695-1)
Java Web Parts - http://javawebparts.sourceforge.net
 Supplying the wheel, so you don't have to reinvent it!

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to