ssm日常项目中问题集合

一、

在Spring MVC和Spring Boot中,如果你的控制器方法参数被标注为一个Java对象,并且该对象的字段与表单输入字段的名称匹配,Spring会自动将表单数据绑定到该对象上。这种机制称为数据绑定(Data Binding)。

假设你有一个表单如下:

复制代码
<form id="searchForm" th:action="@{/search}" method="get">
    <input id="nameInput" type="text" name="name" placeholder="Name" required>
    <input id="idInput" type="text" name="id" placeholder="ID" required>
    <button type="submit">Search</button>
</form>

你的控制器方法可以定义为:

复制代码
@Controller
public class SearchController {

    @GetMapping("/search")
    public String search(User user, Model model) {
        // user 对象会自动填充表单提交的数据
        // 你的处理逻辑
        model.addAttribute("result", searchService.search(user));
        return "searchResults";
    }
}

假设你有一个 User 类:

复制代码
public class User {
    private String name;
    private String id;

    // getters and setters
}

在这种情况下,当表单提交时,Spring会自动将表单数据绑定到 User 对象上。这是因为表单中的 name 属性与 User 类中的字段名称匹配。

数据绑定示例

  1. 实体类

    复制代码
    public class User {
        private String name;
        private String id;
    
        // getters and setters
    }
  2. 控制器

    复制代码
    @Controller
    public class SearchController {
    
        @GetMapping("/search")
        public String search(User user, Model model) {
            // 表单数据已经被绑定到 user 对象
            // 处理逻辑
            model.addAttribute("result", searchService.search(user));
            return "searchResults";
        }
    }
  3. 表单

    复制代码
    <form id="searchForm" th:action="@{/search}" method="get">
        <input id="nameInput" type="text" name="name" placeholder="Name" required>
        <input id="idInput" type="text" name="id" placeholder="ID" required>
        <button type="submit">Search</button>
    </form>

这样,当你提交表单时,Spring会自动将 nameid 字段的值填充到 User 对象的对应字段中。你可以在控制器方法中直接使用这个 User 对象来处理业务逻辑。

二、

在前端通过表单提交数据时,如果你同一前端页面中有其他表单设置了阻止超链接的默认行为,导致其他功能的表单无法提交。

你可以选择通过具体的表单名字取阻止默认行为

html 复制代码
  <!--    通过超链接控制表单的提交,将post请求转换成delete请求-->
    <form id="deleteFrom" method="post">
        <!--        JiddenHtppMethodFilter要求,必须传输_method请求参数,并且值为最终的请求方式-->
        <input type="hidden" name="_method" value="delete">
    </form>
============================================
var vue = new Vue({
        el:"#app",
        methods:{

            deleteUser(event){
                //获取form 表单
                var form = document.getElementById("deleteFrom");//通过具体的id
                //将超链接的href属性赋值给form表单的action属性
                //event.target表示当前触发事件的标签
                form.action = event.target.href;
                //表单提交
                form.submit();
                //阻止超链接的默认行为
                event.preventDefault();
            }

        }
    });

而不是下面这种方法

html 复制代码
   var form = document.getElementById().from[0];

三、

如果是通过在地址后面添加变量的方法获取数据

要注意在Controller类对应方法传递数据时要在形参前面加上

复制代码
@PathVariable(“变量名字”)
相关推荐
₍˄·͈༝·͈˄*₎◞ ̑̑码1 小时前
MyBatis操作数据库
数据库·mybatis
m0_587383002 小时前
全民健身解决方案软件开发实战:从架构设计到落地指南
java·spring boot·spring·架构·需求分析
wno7042 小时前
Spring Cloud Hystrix服务容错
spring·spring cloud·hystrix
用户27462129172804 小时前
深入 Spring AI ChatClient:从一行代码到 LLM 调用的完整旅程
spring
麻瓜code9 小时前
【Agent】Spring AI RAG 实战:本地向量库 + 云端知识库
java·人工智能·spring
干到60岁退休的码农10 小时前
13.构建登录接口响应数据
java·spring boot·mybatis
水巷石子10 小时前
学习langChain4j的第二天,体验springBoot中的starter
java·spring boot·学习·spring·langchain4j
ly768911 小时前
Spring Bean生命周期全流程:从BeanDefinition到销毁
java·后端·spring·bean生命周期·beandefinition·初始化回调
计算机学姐11 小时前
基于SpringBoot的旅游系统的设计与实现
java·vue.js·spring boot·后端·spring·java-ee·旅游
大模型码小白12 小时前
【AI大模型】DeepSeek Harness 深度解析:大模型评测框架的架构与实践
java·运维·人工智能·spring·架构·自动化