springboot+layui+thmleaf开发遇到的坑

大四找到工作之后就一直在寝室苟着,很多开发的技巧和tips都忘了,上周特地重新写了一个springboot的项目,很简单,增删查改,登陆注册,管理员权限,将数据传递到前端,对每特定的数据进行展示和评论等,总之就是一个练手的项目,但也遇到了很多的坑,特总结如下

  1. 如何访问templates下的静态资源
    springboot+layui+thmleaf开发遇到的坑_第1张图片
    新建工具类如下,即可访问templates下的index,别名为login.html
public class MyConfig implements WebMvcConfigurer {
     

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
     
        registry.addViewController("login.html").setViewName("index");
        }
}
  1. 如何访问pom中的webjar依赖

还是图1中的类,重写方法
这样就可以在页面中引用前端资源,例如layui,vue的jar包,否则访问会报错(可能还有其他的方法访问webjar,欢迎大家讨论)

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
     
        registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/");

    }
  1. 常用的注释
    @Configuration:定义配置类,暂时只在WebMvcConfigurer的实现类下使用
    @Controller:定义控制层
    @RequestMapping(“dis”) 访问控制层方法的路径,可用在方法和类上
    @Autowired:自动注入
    @ResponseBody:方法的返回值是不再是资源路径,而是 json格式的字符串
    springboot+layui+thmleaf开发遇到的坑_第2张图片

@Mapper:定义dao层(注解开发还要用到@Select,@Update,@Insert,@Delete)
@Service:定义service层
@SpringBootApplication:项目主类,启动项目用(一般不用自己写)

  1. 前端编写注意事项
    οnblur="f1()"当控件失去焦点时,调用f1方法()
    required 必填项,常配合input使用
    我比较作死,前期用的bootstrip,后来改的layui,如果一个页面引入了这两个包,emmmm自行体会吧
  2. json和ajax的使用
    json:一种键值对的格式,对象用{},数组用[]
    ajax:
 function f1(){
     
            $.get("/user/name",{
     "na":$("#name").val()},function (data) {
     
                if(data.toString()==0){
     
                    $("#g").css("color","red")
                    window.alert(data);
                }
                $("#pp").html=(data);
            })
        }
上述代码就是ajax的使用,判断注册的用户名是否重复
get的()三个参数,第一个是请求路径,第二个是要验证的字符串(#name是找前端id为name的控件,.val()是获取控件的值,fun(data是获取后台返回的json数据))
  1. layui和bootstrip的区别,layui的优势
    我个人感觉,layui更美观,更适合不咋会前端开发的后端开发者,比如我

  2. layui表格需要的数据格式
    layui动态表格要接收一个json格式的数据,但和@ResponseBody返回的json略有差异,这个时候我们要用到一个工具类进行一下转化

public class LayuiTypeJson<T> {
     
    private int code=0;
    private String msg="";
    private int count;
    private List<T> data=new ArrayList<T>();

    public int getCode() {
     
        return code;
    }

    public void setCode(int code) {
     
        this.code = code;
    }

    public String getMsg() {
     
        return msg;
    }

    public void setMsg(String msg) {
     
        this.msg = msg;
    }

    public int getCount() {
     
        return count;
    }

    public void setCount(int count) {
     
        this.count = count;
    }

    public List<T> getData() {
     
        return data;
    }

    public void setData(List<T> data) {
     
        this.data = data;
    }
}

应用如下

 @RequestMapping("list")
 @ResponseBody
    public LayuiTypeJson<Ngrade> findAll(){
     
        List<Ngrade> all = dao.findAll();
        LayuiTypeJson<Ngrade> json = new LayuiTypeJson<>();
        json.setCount(all.size());
        json.setData(all);
        return json;
    }

注意一下,返回值类型是LayuiTypeJson

你可能感兴趣的:(JAVA学习,java)