生成java代码,在idea中运行:在Spring MVC中,我们可以一次创建多个控制器。必须使用 @Controller 注释映射每个控制器类。 多个控制器的Spring MVC示例。步骤如下: 1. 在Maven中加载spring jar文件或添加依赖项创建控制器类 2. 在web.xml文件中提供控制器的条目 3. 在spring-servlet.xml文件中定义bean 4. 创建其他视图组件 5. 启动服务器并部署项目。要求至少要写三个controller且不能用href语句实现跳转。要求:使用至少3个controller,不简单使用href标签跳转,在controller中使用requestmapping方法。最终实现效果:页面1可以直接跳转到页面2和页面3(即页面1中有页面2和页面3的跳转链接),页面2和页面3分别有一句话。代码需要简单易懂符合初学者大学生的水平,并对每个页面进行解说。
时间: 2025-06-24 21:36:19 浏览: 13
### Spring MVC 多控制器示例
以下是基于 `@RequestMapping` 的三个控制器类的实现,展示了如何通过控制器之间的跳转来完成页面导航功能。此示例适合初学者理解和实践。
#### 控制器1:MainController.java
该控制器负责处理初始请求,并提供两个跳转选项至其他控制器。
```java
@Controller
public class MainController {
@RequestMapping("/main")
public String mainPage() {
return "main"; // 转发到名为 "main" 的视图
}
@RequestMapping("/toPage2")
public String redirectToPage2() {
return "redirect:/page2"; // 重定向到 Page2Controller
}
@RequestMapping("/toPage3")
public String redirectToPage3() {
return "redirect:/page3"; // 重定向到 Page3Controller
}
}
```
#### 控制器2:Page2Controller.java
该控制器用于展示页面2的内容。
```java
@Controller
public class Page2Controller {
@RequestMapping("/page2")
public String page2(Model model) {
model.addAttribute("message", "这是页面2!");
return "page2"; // 转发到名为 "page2" 的视图
}
}
```
#### 控制器3:Page3Controller.java
该控制器用于展示页面3的内容。
```java
@Controller
public class Page3Controller {
@RequestMapping("/page3")
public String page3(Model model) {
model.addAttribute("message", "这是页面3!");
return "page3"; // 转发到名为 "page3" 的视图
}
}
```
---
### 前端视图文件
为了配合上述控制器逻辑,需要准备对应的 JSP 文件作为前端视图。
#### 主页 (main.jsp)
主页提供了按钮或链接供用户选择跳转目标。
```html
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页面</title>
</head>
<body>
<h1>欢迎来到主页面!</h1>
<form action="/toPage2" method="get">
<button type="submit">前往页面2</button>
</form>
<form action="/toPage3" method="get">
<button type="submit">前往页面3</button>
</form>
</body>
</html>
```
#### 页面2 (page2.jsp)
显示来自控制器的消息。
```html
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>页面2</title>
</head>
<body>
<h1>${message}</h1>
<a href="/">返回首页</a>
</body>
</html>
```
#### 页面3 (page3.jsp)
同样显示一条消息。
```html
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>页面3</title>
</head>
<body>
<h1>${message}</h1>
<a href="/">返回首页</a>
</body>
</html>
```
---
### 运行流程说明
1. 用户访问 `/main` 请求时,会加载 `main.jsp` 页面[^1]。
2. 当点击“前往页面2”的按钮时,表单提交触发 `redirectToPage2()` 方法,执行重定向操作至 `/page2`[^2]。
3. 同理,“前往页面3”按钮会调用 `redirectToPage3()` 方法,最终到达 `/page3`。
4. 在页面2和页面3中,分别通过模型传递数据并渲染对应的信息[^3]。
---
### 配置注意事项
确保已配置好 Spring MVC 的视图解析器(ViewResolver)。例如,在 XML 中设置如下:
```xml
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
```
这使得视图名称能够自动匹配实际的 `.jsp` 文件位置[^4]。
---
阅读全文
相关推荐


















