In this section, you will learn about @Controller annotation for defining new controllers.
@Controller annotation shows that the annotated class act as the controller. This annotation act as role indicator. The DispatcherServlet scans such annotated classes and finds the @RequestMapping annotations in the class so that it can relate the requested URLs to the associated methods.
Prior to Spring 3.0, we need to define the controller in the dispatcher's context by using standard Spring bean definition. Also, @Controller supports auto detection for component classes in the classpath and auto-registration of bean definitions for these classes.
You need to add the following configuration to enable auto detection of the annotated controllers through component scanning :
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="net.roseindia"/> <!-- ... --> </beans>
You can use @Controller annotation to define new controller class as follows :
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public ModelAndView helloWorld() {
String message = "Hello World, Spring 3.0!";
return new ModelAndView("hello", "message", message);
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: @Controller annotation for defining new controller
Post your Comment