新建一个Maven Web项目student_ms,完成学生信息,包括学号、姓名、性别、年龄、籍贯及电话等的提交并显示。在wepapp目录下,创建jsp文件add_student.jsp,提供提交所有学生信息的表单(表单的action值要与后面的控制器方法对应)。 下一步,在/WEB-INF/pages目录下,创建jsp文件student_info.jsp,要求显示所有学生信息。 下一步,在创建com.javaee.ex08.controller.StudentController控制器类,实现学生信息的接收,并转发给studentinfo.jsp文件。 下一步,在main/resources/config目录下创建springmvc-config.xml,在其中配置控制器扫描(扫描com.javaee.ex08.controller包)及视图解析器(前缀为/WEB-INF/pages/,后缀为.jsp)。 下一步,在web.xml文件中,配置Spring MVC前端控制器。
时间: 2023-06-23 14:09:22 浏览: 293
好的,让我来为你提供一份完整的代码示例。
首先,我们需要创建一个 Maven Web 项目,命名为 student_ms。在项目的 `src/main/webapp` 目录下,创建一个名为 `add_student.jsp` 的 JSP 文件,用于提交学生信息表单。在 `WEB-INF/pages` 目录下,创建一个名为 `student_info.jsp` 的 JSP 文件,用于显示所有学生信息。
接下来,我们需要创建一个名为 `StudentController` 的控制器类,用于接收学生信息并转发到 `student_info.jsp` 页面。该类的代码如下:
```java
package com.javaee.ex08.controller;
import com.javaee.ex08.model.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList;
import java.util.List;
@Controller
public class StudentController {
private List<Student> studentList = new ArrayList<>();
@RequestMapping(value = "/addStudent", method = RequestMethod.POST)
public String addStudent(Student student, Model model) {
studentList.add(student);
model.addAttribute("studentList", studentList);
return "student_info";
}
}
```
在该类中,我们使用 `@Controller` 注解将其声明为一个控制器,使用 `@RequestMapping` 注解将 `addStudent` 方法映射到 `/addStudent` 请求路径。在该方法中,我们将提交的学生信息添加到 `studentList` 集合中,并将其存储在 `Model` 中,然后返回 `student_info` 视图名称,以便显示学生信息。
接下来,我们需要在 `src/main/resources` 目录下创建一个名为 `springmvc-config.xml` 的 Spring MVC 配置文件,用于配置控制器扫描和视图解析器。该文件的代码如下:
```xml
<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<mvc:annotation-driven/>
<mvc:resources mapping="/resources/**" location="/resources/"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<context:component-scan base-package="com.javaee.ex08.controller"/>
</beans>
```
在该配置文件中,我们使用 `<mvc:annotation-driven/>` 标签启用 Spring MVC 注解驱动,使用 `<mvc:resources>` 标签配置静态资源路径。我们还配置了一个 `InternalResourceViewResolver` 视图解析器,用于解析 JSP 视图。最后,我们使用 `<context:component-scan>` 标签扫描 `com.javaee.ex08.controller` 包中的控制器类。
接下来,在 `web.xml` 文件中配置 Spring MVC 前端控制器,代码如下:
```xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>student_ms</display-name>
<servlet>
<servlet-name>student_ms</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>student_ms</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
```
在该配置文件中,我们定义了一个名为 `student_ms` 的前端控制器,并将其映射到根路径。我们还在 `init-param` 中指定了 `springmvc-config.xml` 配置文件的位置。
最后,我们可以在 `add_student.jsp` 文件中创建一个表单,用于提交学生信息。代码如下:
```html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Add Student</title>
</head>
<body>
<h1>Add Student</h1>
<form action="${pageContext.request.contextPath}/addStudent" method="post">
<label>学号:</label><input type="text" name="id"><br>
<label>姓名:</label><input type="text" name="name"><br>
<label>性别:</label>
<input type="radio" name="gender" value="male">男
<input type="radio" name="gender" value="female">女<br>
<label>年龄:</label><input type="text" name="age"><br>
<label>籍贯:</label><input type="text" name="hometown"><br>
<label>电话:</label><input type="text" name="phone"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
在该表单中,我们使用 `method="post"` 将其提交方法指定为 `POST`,使用 `${pageContext.request.contextPath}` 获取当前应用的上下文路径,将其与 `/addStudent` 拼接成表单的 `action` 属性值。
现在,我们已经完成了一个简单的 Spring MVC Web 项目,可以运行该项目并访问 `add_student.jsp` 页面,提交学生信息并查看 `student_info.jsp` 页面中的所有学生信息。
阅读全文