使用SpringMVC进行pojo传参

以下是使用IntelliJ IDEA 2021创建名为SpringMvcUserDemo的Maven项目结构,并基于JDK 1.8、采用Spring 5.2.10版本依赖来实现User对象的POJO参数传递的详细步骤:

一、使用IntelliJ IDEA 2021创建Maven项目

  1. 打开IntelliJ IDEA 2021:启动IntelliJ IDEA开发工具。
  2. 新建项目:点击File -> New -> Project,在弹出的窗口中选择Maven项目类型,然后点击Next
  3. 配置项目基本信息
    • GroupId:可自行定义,例如com.example
    • ArtifactId:填写SpringMvcUserDemo,与项目名称保持一致。
    • Version:设定项目版本号,如1.0-SNAPSHOT
    • Project SDK:选择JDK 1.8版本(需提前安装并配置好JDK 1.8)。
    • 点击Next,选择项目的存储路径,点击Finish完成项目的创建。

二、添加Spring相关依赖到pom.xml文件

在项目的pom.xml文件中添加以下依赖(使用Spring 5.2.10版本):


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.examplegroupId>
    <artifactId>SpringMvcUserDemoartifactId>
    <version>1.0-SNAPSHOTversion>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
            <version>5.2.10version>
        dependency>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-contextartifactId>
            <version>5.2.10version>
        dependency>
    dependencies>
project>

保存pom.xml文件后,Maven会自动下载相关依赖到本地仓库(前提是网络和配置正常)。

三、创建项目结构及相关类

  1. 创建包结构
    src/main/java目录下创建项目的包结构,例如com.example.springmvcuserdemo(根据实际的GroupId等情况确定),后续的类将放在对应的包下。

  2. 创建实体类User
    com.example.springmvcuserdemo包下创建User实体类,代码示例如下:

package com.example.springmvcuserdemo;

public class User {
    private Integer id;
    private String username;
    private Integer age;
    private String addr;

    // 生成对应的getter和setter方法
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }
}

四、创建Spring MVC相关配置

  1. 创建Spring配置文件(applicationContext.xml
    src/main/resources目录下创建applicationContext.xml文件,用于配置Spring容器,示例内容如下:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    
    <context:component-scan base-package="com.example.springmvcuserdemo"/>

beans>

此配置文件通过标签告知Spring去扫描指定包(这里是com.example.springmvcuserdemo包)下的组件(如带有注解的控制器等)。

  1. 创建Spring MVC配置文件(spring-mvc.xml
    同样在src/main/resources目录下创建spring-mvc.xml文件,用于配置Spring MVC相关设置,示例内容如下:

<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.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    
    <mvc:annotation-driven/>

    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    bean>

beans>

标签用于开启Spring MVC的注解驱动,使得诸如@RequestMapping等注解能够生效。视图解析器的配置用于将逻辑视图名解析为实际的视图资源(这里假设使用JSP页面,位于/WEB-INF/views/目录下,后缀为.jsp)。

五、创建控制器类(Controller)

com.example.springmvcuserdemo包下创建UserController控制器类,用于处理与User对象相关的请求以及实现POJO参数传递,代码示例如下:

package com.example.springmvcuserdemo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/user")
public class UserController {

    // 展示添加用户的表单页面
    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String showAddUserForm(Model model) {
        model.addAttribute("user", new User());
        return "addUser";
    }

    // 处理添加用户的表单提交请求,接收User对象作为参数
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addUser(@ModelAttribute("user") User user, Model model) {
        // 这里可以添加将用户信息保存到数据库等实际业务逻辑(此处省略)
        model.addAttribute("message", "用户添加成功!");
        return "result";
    }
}

在上述控制器类中:

  • showAddUserForm方法用于处理GET请求,返回添加用户的表单页面(这里假设为addUser.jsp),并向模型中添加一个空的User对象,以便在表单页面中可以绑定表单字段到User对象的属性上。
  • addUser方法用于处理POST请求,通过@ModelAttribute注解接收前端提交的表单数据并自动封装到User对象中,然后可以进行后续的业务处理(如保存到数据库,这里只是简单模拟添加成功的提示信息),最后返回一个结果页面(这里假设为result.jsp)。

六、创建视图页面(以JSP为例)

  1. 创建addUser.jsp页面
    src/main/webapp/WEB-INF/views目录下创建addUser.jsp页面(需确保项目结构中存在src/main/webapp/WEB-INF/views这样的目录结构,如果不存在则手动创建),用于展示添加用户的表单,示例代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加用户title>
head>
<body>
    <h2>添加用户信息h2>
    <form action="${pageContext.request.contextPath}/user/add" method="post">
        <label for="id">学号:label><input type="text" id="id" name="id" /><br />
        <label for="username">姓名:label><input type="text" id="username" name="username" /><br />
        <label for="age">年龄:label><input type="text" id="age" name="age" /><br />
        <label for="addr">籍贯:label><input type="text" id="addr" name="addr" /><br />
        <input type="submit" value="提交">
    form>
body>
html>

此表单页面中的各个输入框的name属性需与User实体类的属性名一一对应,这样在表单提交时,Spring MVC才能正确地将表单数据封装到User对象中。

  1. 创建result.jsp页面
    同样在src/main/webapp/WEB-INF/views目录下创建result.jsp页面,用于展示添加用户后的结果信息,示例代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>结果title>
head>
<body>
    <h2>${message}h2>
body>
html>

此页面通过${message}表达式获取控制器中添加到模型的消息并展示出来。

七、配置项目部署(以Tomcat为例,假设使用内置的Tomcat插件)

在IntelliJ IDEA中,需要配置项目的运行环境为Tomcat,具体步骤如下:

  1. 点击Edit Configurations(通常在右上角运行配置下拉菜单旁边可以找到)。
  2. 在弹出的窗口中点击+号,选择Tomcat Server -> Local
  3. Server标签页下,配置Tomcat的安装路径(如果已自动识别可检查是否正确)。
  4. Deployment标签页下,点击+号,选择Artifact,将项目的war包(如果是Web项目,Maven会自动构建war包,这里也可以配置为exploded模式直接部署项目目录结构)添加到部署列表中。
  5. 点击OK保存配置。

八、使用ApiPost 7进行接口测试(模拟前端表单提交)

  1. 打开ApiPost 7:启动ApiPost 7工具。
  2. 创建请求:点击新建请求,选择POST方法(对应控制器中处理添加用户的POST请求方法)。
  3. 设置请求URL:输入http://localhost:8080/SpringMvcUserDemo/user/add(假设项目运行在本地的8080端口,根据实际部署的端口和项目名修改)。
  4. 设置请求头:添加Content-Type请求头,值设置为application/x-www-form-urlencoded(因为表单提交一般采用这种编码格式)。
  5. 设置请求体:按照User对象的属性名和对应的值,以键值对的形式添加,例如:
    • id:输入一个整数值,如1
    • username:输入一个姓名,如张三
    • age:输入一个年龄值,如20
    • addr:输入一个籍贯信息,如北京
  6. 发送请求:点击发送按钮,查看响应结果,如果一切正常,应该能看到返回的结果页面内容(根据result.jsp页面的设置),表示成功实现了User对象的POJO参数传递以及相关的业务处理流程。

通过以上完整的步骤,就完成了基于Spring MVC的SpringMvcUserDemo项目的搭建,实现了User对象的POJO参数传递以及简单的用户添加功能模拟,在实际应用中可以进一步完善业务逻辑,比如添加数据库操作等内容。

注意事项

  • 在实际开发中,如果要连接数据库保存用户信息等,还需要添加相应的数据库驱动依赖以及配置数据库连接信息等内容,这里主要聚焦在Spring MVC的参数传递功能演示上。
  • 确保项目的依赖下载完整以及配置的正确性,若遇到问题可查看IntelliJ IDEA的日志以及控制台输出信息来排查错误。

你可能感兴趣的:(java,mvc,spring)