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(“变量名字”)
相关推荐
青鱼入云2 小时前
介绍一下Spring Cloud LoadBalancer
spring·spring cloud·微服务
lang201509283 小时前
Spring事务回滚规则深度解析
java·后端·spring
JMzz4 小时前
Rust 中的内存对齐与缓存友好设计:性能优化的隐秘战场 ⚡
java·后端·spring·缓存·性能优化·rust
没有bug.的程序员5 小时前
Spring Boot 整合第三方组件:Redis、MyBatis、Kafka 实战
java·spring boot·redis·后端·spring·bean·mybatis
迷了璐的航6 小时前
mybatis解决查询中使用group by时出现sql_mode=only_full_group_by
数据库·sql·mybatis
悟能不能悟7 小时前
mybatis的sql中,如果一个条件column=#{column},column的值为null时,会不会匹配出column is null 的记录
sql·tomcat·mybatis
技术砖家--Felix8 小时前
Spring Boot数据访问篇:整合MyBatis操作数据库
数据库·spring boot·mybatis
裸奔在上海8 小时前
使用Java做URL短连接还原长链接获取参数
java·开发语言·程序人生·spring
洛克大航海8 小时前
9-SpringCloud-服务网关 Gateway-高级特性之 Filter-1
spring·spring cloud·gateway·filter
I'm Jie8 小时前
Gradle 的项目结构与源码集(Source Sets)详解(Kotlin DSL)
android·java·开发语言·spring boot·spring·kotlin·gradle