Click here to Skip to main content
16,019,349 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
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.

Java
@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
Updated 6-Aug-12 1:56am
v2

1 solution

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.
 
Share this answer
 
v3

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900