SpringBoot页面表单请求失败,错误400的解决办法

SpringBoot页面表单请求失败,错误400的解决办法

错误页面:

后台控制台提示:Request method 'POST' not supported

原因分析:

400错误一般指的是请求无效,请求有语法问题或者不能满足请求。

网上分析原因可能有以下:

1. 一般最常见的就是后台的实体类bean与前台穿过的类型不匹配
2. log4j的配置文件里错误将部分log打为Info级别所致
3. 要返回json的却忘了加@ResponseBody
4. 传了非实体bean属性的参数过来。
5. controller指定的参数名称与前台不一致,如:使用了@RequestParam(value="userName")而前台必须指定该名称

查看代码,发现我的POJO对象中有日期属性,问题果然是这里。

原先birth属性的set方法,是自动生成的,如下:

  public void setBirth(Date birth)  {      
            this.birth =birth;
    }

页面传来的参数都是String类型,我传入的参数格式是2018-03-12,在日期转换时发生了错误,页面请求失败。

如果未做任何处理时,springboot默认的日期格式是:2018/03/02

如果输入其他格式或者不输入就会请求失败,如:2018-02-01,2018.01.01

解决办法有两种:

1.直接修改set方法。设置日期格式。

  public void setBirth(String birth) throws ParseException {
      //自定义日期格式
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
      //如果没有传入日期,直接返回空值。
        if (StringUtils.isEmpty(birth)) {
            this.birth=null;
            return;
        }else{
            //将传入的日期,按照自定义格式转化后赋值。
            this.birth =sdf.parse(birth) ;
        }
    }

2.在application.properties中配置spring.mvc.date-format属性。

这样就可以顺利将参数注入POJO对象中了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot和Layui是两个不同的技术,Spring Boot是一个Java开发框架,而Layui是一个前端UI框架。如果要实现一个登录页面,可以使用Spring Boot作为后端框架,Layui作为前端UI框架。具体实现可以参考以下步骤: 1. 在Spring Boot中创建一个Controller,用于处理登录请求。 2. 在Controller中编写登录逻辑,包括验证用户名和密码是否正确。 3. 在Controller中返回一个视图,用于展示登录页面。 4. 在视图中引入Layui的相关资源文件,如CSS和JS文件。 5. 在视图中编写登录表单,包括用户名和密码的输入框以及登录按钮。 6. 在视图中编写JavaScript代码,用于处理登录表单的提交事件。 7. 在JavaScript代码中使用Ajax向后端发送登录请求,并根据返回结果进行相应的处理。 8. 如果登录成功,可以跳转到其他页面;如果登录失败,可以在页面上显示错误信息。 以上是一个简单的实现过程,具体实现还需要根据具体需求进行调整。 ### 回答2: Spring Boot是一个由Spring官方提供的快速构建Spring应用的框架,它提供了一套标准化的开发流程,大大简化了Spring应用的开发和部署。同时,Layui是国内十分流行的一个前端框架,它提供了大量简单易用又美观的UI组件,可以帮助开发人员快速开发出酷炫的网页界面。结合Spring Boot和Layui,我们可以快速构建一个登录页面,下面详细介绍一下。 首先,我们需要在Spring Boot中引入Layui的依赖。在Maven或Gradle中加入以下依赖: ```xml <!-- Maven --> <dependency> <groupId>com.github.sd4324530</groupId> <artifactId>layui-spring-boot-starter</artifactId> <version>1.0.0</version> </dependency> // Gradle compile 'com.github.sd4324530:layui-spring-boot-starter:1.0.0' ``` 在Spring Boot的配置文件中加入Layui的页面路径: ```yml spring: thymeleaf: cache: false mode: HTML encoding: UTF-8 prefix: classpath:/templates/ suffix: .html resources: static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ welcome-page: /static/dashboard.html ``` 然后,创建一个login.html的界面文件,代码如下: ```html <!doctype html> <html lang="en"> <head> <meta charset=UTF-8"> <meta name=viewport content="width=device-width, initial-scale=1"> <title>登录</title> <link rel="stylesheet" href="../layui/css/layui.css"> </head> <body class="layui-background-color-gray10"> <div class="layui-container "> <div class="layui-row" style="margin-top: 50px;"> <div class="layui-col-xs-offset4 layui-col-md-offset4 layui-col-lg-offset4 layui-col-md-4 layui-col-lg-4"> <div class="layui-card"> <div class="layui-card-header layui-background-color-gray10 layui-text-center">登录</div> <div class="layui-card-body"> <form class="layui-form"> <div class="layui-form-item"> <input type="text" name="username" required lay-verify="required" placeholder="用户名" autocomplete="off" class="layui-input"> </div> <div class="layui-form-item"> <input type="password" name="password" required lay-verify="required" placeholder="密码" autocomplete="off" class="layui-input"> </div> <div class="layui-form-item"> <button class="layui-btn layui-btn-normal layui-btn-block" lay-submit lay-filter="formDemo">登录 </button> </div> </form> </div> </div> </div> </div> </div> <script src="../layui/layui.js"></script> <script src="../jquery.min.js"></script> <script> //layui表单数据提交 layui.use('form', function () { var form = layui.form; //监听登录表单提交 form.on('submit(formDemo)', function (data) { //把表单数据转化为json字符串 var formData = JSON.stringify(data.field); $.ajax({ url: "/login", type: 'POST', data: formData, contentType: "application/json;charset=utf-8", dataType: 'json', success: function (result) { //登录成功,跳转到首页 if (result.code == "0") { window.location.href = "/dashboard"; } else { //登录失败,提示错误信息 layer.alert(result.msg, {icon:2}); } }, error: function () { layer.alert("系统繁忙,请稍后再试!", {icon:2}); } }); return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); }); </script> </body> </html> ``` 以上代码示例是一个基于Layui的简单登录页面,该页面主要包含一个登录表单,使用表单验证和数据提交的方式实现用户登录操作。表单提交通过异步请求的方式实现,提交成功之后会跳转到首页,否则会提示登录失败。 诸如此类的登录界面是开发过程中的基础需求,与此类似的其他页面也应用非常广泛。结合Spring Boot和Layui可以快速开发出高效、漂亮的页面效果,从而提升开发和用户体验效果。 ### 回答3: Springboot是一种快速开发框架,而Layui是一套前端UI框架,二者能够结合使用,可以构建美观、易用的登录页面。 首先,需要引入Layui框架的相关文件。可以通过在HTML文件头部引入Layui的CSS文件和JS文件,如下: ``` <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/layui.css" /> <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/layui.js"></script> ``` 然后,可以在HTML中书写登录表单。可以使用Layui提供的form组件,如下: ``` <form class="layui-form" action="/login" method="post"> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="login">立即登录</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> ``` 其中,form组件的class为layui-form,action为登录请求的地址,method为post请求方式。输入框和按钮都是在Layui框架中提供的,类名和属性也都是Layui框架中定义的。 在JavaScript中,可以通过Layui的form组件监听提交事件,如下: ``` layui.use('form', function(){ var form = layui.form; //监听提交 form.on('submit(login)', function(data){ //登录操作,使用ajax提交请求 $.ajax({ url: data.form.action, type: data.form.method, data: $(data.form).serialize(), success: function(result){ //登录成功后,跳转到指定页面 window.location.href = result.data.redirectUrl; }, error: function(error){ //登录失败,提示用户 layer.msg(error.responseJSON.message); } }); return false; }); }); ``` 其中,使用Layui的form组件监听提交事件,当用户点击登录按钮时,该函数将会被执行。此时,需要使用ajax发送请求到后台进行登录验证,验证成功则跳转到指定页面;验证失败则显示错误提示信息。 综上所述,使用Springboot和Layui构建登录页面是非常简单的。只需要在HTML中引入Layui的CSS和JS文件,使用Layui的form组件编写登录表单,以及在JavaScript中监听提交事件,即可完成一个美观、易用的登录页面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值