SprintMVC 如何用URL映射控制器类及其方法?
参考答案:
在Spring MVC中,URL映射到控制器类及其方法是通过使用@Controller
和@RequestMapping
注解来完成的。以下是一个简单的例子,展示如何使用这些注解来映射URL到控制器类及其方法:
首先,你需要创建一个控制器类,并使用@Controller
注解来标记它。这个类应该包含你想要处理请求的方法,并使用@RequestMapping
注解来标记这些方法。
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class MyController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "hello";
}
@RequestMapping(value = "/goodbye", method = RequestMethod.GET)
public String goodbye() {
return "goodbye";
}
}
在这个例子中,MyController
类有两个方法:hello()
和goodbye()
。每个方法都使用@RequestMapping
注解来指定一个URL路径(value
属性)和一个HTTP方法(method
属性)。
hello()
方法被映射到路径/hello
,并且只响应GET请求。goodbye()
方法被映射到路径/goodbye
,并且也只响应GET请求。
当这些URL被请求时,Spring MVC会调用相应的方法,并返回方法返回的字符串作为视图名称。在这个例子中,返回的字符串是"hello"
和"goodbye"
,它们会被解析为相应的视图(例如,JSP页面)。
除了路径和方法,@RequestMapping
注解还可以用于指定其他请求参数,如请求头、请求参数等。此外,你还可以使用@GetMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
等注解来分别指定不同的HTTP方法,这些注解是@RequestMapping
的快捷方式。
注意:为了使Spring MVC能够扫描到你的控制器类,你需要在Spring配置中启用组件扫描,或者在控制器类上使用@ComponentScan
注解。例如,你可以在你的Spring配置类中添加@ComponentScan("com.example.myapp.controller")
,其中"com.example.myapp.controller"
是你的控制器类所在的包名。