SpringMVC通过ModelMap向request域对象共享数据(二)

2023-05-13 15:17:01 浏览数 (1)

类似地,我们可以使用ModelMap存储Map对象。以下是一个示例:

代码语言:javascript复制
@Controller
@RequestMapping("/example")
public class ExampleController {
 
    @GetMapping("/modelmap")
    public String exampleWithModelMap(ModelMap model) {
        model.addAttribute("message", "Hello from ModelMap!");
        return "example";
    }
}

在上面的代码示例中,我们定义了一个ExampleController,并将@RequestMapping注解用于类级别,以指定所有映射请求的共同前缀。在方法级别上,我们使用了@GetMapping注解来指定处理GET请求的exampleWithModelMap方法,并且将一个ModelMap参数添加到该方法的参数列表中。

在方法体内部,我们使用了model对象的addAttribute方法,来向该对象中添加一个名为message,值为Hello from ModelMap!的属性。这个属性会在执行完该方法后,传递给视图层。最后,我们返回了一个视图名为example的字符串。

这个示例中的example视图会使用JSP技术来展示消息。下面是示例视图的代码:

代码语言:javascript复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Example Page</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

这个视图将在页面上显示一个标题和一个文本信息,该信息来自于我们在ExampleController中添加到ModelMap对象中的属性。通过在<h1>标签内部使用${message}表达式,我们能够动态地展示该属性的值。

当我们访问/example/modelmap路径时,ExampleController中的exampleWithModelMap方法将会被调用。该方法会向ModelMap对象中添加一个message属性,并将视图名设置为exampleModelMap对象中的所有属性将会自动传递给该视图。在该视图中,我们使用了${message}表达式来动态地展示message属性的值。这样,我们就成功地向request域对象共享了一个数据。

0 人点赞