跳到主要内容

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"是你的控制器类所在的包名。