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(“变量名字”)
相关推荐
大傻^10 分钟前
【Spring AI -01】Spring AI 2.0 架构重构深度解析:从单体核心到模块化领域的演进
人工智能·spring·架构·spring ai·模块化设计·java 21·架构迁移
代码探秘者12 分钟前
【Spring框架】彻底理解 Spring 单例线程安全
java·安全·spring
独断万古他化25 分钟前
【抽奖系统开发实战】Spring Boot 项目的奖品模块开发:文件上传、时序设计与奖品创建
java·spring boot·后端·mvc·文件
十年编程老舅36 分钟前
吃透 Linux 内核 IO 体系:块缓存与页缓存的核心设计与实现逻辑
linux·数据库·c++·spring·后端技术·页缓存
数据知道36 分钟前
MongoDB WiredTiger存储引擎调优:如何优化缓存与并发参数
mongodb·spring·缓存
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于.NET MVC的乡村综合信息化 管理系统设计与实现为例,包含答辩的问题和答案
mvc·.net
任子菲阳1 小时前
学JavaWeb第七天——yml配置文件 & 后端实战Tlias案例
java·开发语言·spring
BUG?不,是彩蛋!1 小时前
AI智慧社区--实现修改密码、退出登录、动态路由
java·spring boot·后端·intellij-idea·mybatis
码上解惑1 小时前
基于 Spring AI Alibaba ReactAgent 辅助低代码表单设计的实现原理与实操步骤
人工智能·spring·低代码·ai
冉冰学姐7 小时前
基于ssm的技能比赛报名管理系统29817vn0(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
java·数据库·spring·ssm 框架应用