Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Java Ajax
I'm working with Spring MVC 3.0.2 with Hibernate using JSP. I'm using RESTful (annotated) controllers in Spring. Many a times, I need to return a java.util.List using Ajax (to and) from the Spring controller class which is mapped with appropriate (mostly GET and POST) requests. Something like the one shown below.
 
@RequestMapping(method=RequestMethod.POST, value="ajax/TempAjax")
    
public @ResponseBody List<Country>getStateList(@ModelAttribute("someBean") 
SomeBean someBean, BindingResult error, HttpServletRequest request, 
HttpServletResponse response)
{
    Session session=NewHibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
 
    List<Country>list=session.createQuery("from State where countryId = 
   "+request.getParameter("countryId")+" order by stateId").list();
 
    session.flush();
    session.getTransaction().commit();
    return list;
}
 
What I'm trying to do is when a country is selected from a Country select box, corresponding states of that country should be populated from the database in the State select box according to the countryId passed to the Spring controller class via Ajax.
 
I'm not sure but the Spring MVC 3.0.2 should support some direct mechanism like JSON. Could you please let me know what are the prerequisites of using Ajax to accomplish such task in Spring MVC. If possible, could you please give me some example. I have searched on Google but I didn't realize the basic requirements as I'm using such stuff very first time.
Posted 6-Aug-12 1:37am
Edited 6-Aug-12 1:56am
v2

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Add this in spring config xml 
 
<beans:bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" >
	<beans:property name="extractValueFromSingleKeyModel" value="true" />
</beans:bean>
 
Add jackson-core-asl-1.1.2.jar and jackson-mapper-asl-1.1.2.jar to build path
 
In Controller:
 
/**
 * Receives ajax request from the client gets the response from the web
 * service usng service classes and sends the response back to the client on
 * JSON format.
 */
 @RequestMapping(value = "/showSomeData", method = RequestMethod.POST)
 public @ResponseBody SampleClass someFunction() {
 
      // Do the processing 
	SampleClass sampleClass = new SampleClass();
      // set the properties for sampleClass

      return sampleClass;
 
 }
 
This blog might help you to understand things more.
  Permalink  
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Advertise | Privacy | Mobile
Web02 | 2.8.141022.2 | Last Updated 21 Sep 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100