今天遇到的问题总结

Posted jimmyfanhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天遇到的问题总结相关的知识,希望对你有一定的参考价值。

一.SprinMvc 的数据绑定问题

  1.默认支持的类型

   HttpServletRequest 对象,HttpServletResponse 对象,HttpSession 对象这些对象在Controller的方法形参直接使用就可以,这些都是默认的声明。

  2.基本数据的绑定

   基本上前台有两种方式传递参数,一个是GET方法的url里面传参数,一个是POST方法通过表单提交,无论哪个。要提交的属性名字要和后台Controller的处理方法上的定义的形参的名字一样。

   1.如通过GET方法:这里参数是name和password,注意看后台的login的方法的形参,也要和这个一样,否则会发生错误。

   技术分享图片  

 

  2.如通过POST方法,在表单里面的属性的名字一样要和后台的方法的形参名字一致,如果想不一样,可以使用@RequestParam(value="和表单的属性的名字一样")

  3.POJO对象的绑定

    一般都是表单通过POST提交了这种,比如在测试update接口时,后台那边接收的是User的POJO类型,那么表单提交的就要和实体类定义的字段名一样。

  下面这个是User实体类的属性。

   private Integer id;

    private String name;

    private String password;

    private String phone;

    private String email;

    private Integer role;

   这个是测试时的定义的属性的名字,中午就是设置name为username搞得后台接收不到name,这里还有一个问题,后面再介绍。

                  技术分享图片

 

二.SpringBoot的项目结构

  1.Controller去哪里?

    一开始,不熟悉SpringBoot,以为和以前SSM框架一样写好了Controller之后神奇地发现居然不Work,上网查才知道原来SpringBoot有个启动类,要在启动类那边扫描Controller和Service以及Mapper才可以,下面来看看吧。而且,Controller的包要和那个启动类所在的包同级。

 

技术分享图片

 

   2.SpringBoot的静态资源

    1.在SpringBoot的项目结构里面没有以往的Webapp,静态资源和网页都放在resources下,看看下面的配置,静态页面放在templates里面。static可以放图片,css文件等。

技术分享图片

   

    2.然后在pom里面配置一下访问静态资源的jar包,如下:

        <!--访问静态资源-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>                

 

   3.最后还要配置一下Controller,写一个Controller来对请求转发一下就行啦。

@Controller
public class DemoController {

    @RequestMapping("/index")
    public String upload(){
        return "index";
    }
}

 

三.Mybatis操作

   1.Mybatis的逆向工程

      数据库真的要一开始就想好,不要随便改,否则逆向工程可不是那么简单就逆向的,会在你原来的Mapper文件上覆盖,自己写的sql也丢失,很惨的...

   2.Mybatis生成的Mapper

      1.updateByPrimaryKeySelective,这个更新方法时会帮你更新非空的字段,比如你单独设置更新名字,用这个,它就只管更新name这个属性到数据库。而且它生成的sql语句是先根据id去查找,找到数据在更新的。

      2.所以在项目中,在注册的时候,要注意设置插入用户之后返回数据库的自增的主键,然后在更新的时候从session里面获取user的id以及前台传来更新的信息组成一个新的User然后更新就行了,具体设置如下:

<insert id="insert" useGeneratedKeys="true" keyProperty="id"  keyColumn="id" parameterType="com.POJO.User" >

 

以上是关于今天遇到的问题总结的主要内容,如果未能解决你的问题,请参考以下文章

回归 | js实用代码片段的封装与总结(持续更新中...)

RunLoop总结:RunLoop的应用场景

今天遇到的问题总结

python常用代码片段总结

10个超级有用必须收藏的PHP代码样例

如何设置主活动中显示的默认片段?