00:00
前面呢,我们将首页的资源导入到了我们商品系统里边,我们也访问成功了,接下来呢,我们来再做两个事情,第一个我们希望呢,访问我们这个项目的杠路径,或者呢访问我们项目的杠index HTML,我们都是来到我们的首页,比如我们写一个杠index d HTML回车,我叫inex htm Mr回车,我们都算呢来到首页,但呢inex htm2这个路径我们还没有做映射。第二个我们来到首页的时候呢,我们要将我们所有的菜单查出来,而且查的时候呢,是先来查询我们的更菜单,这个更一级菜单我们查询到了以后,我们鼠标放到哪一个跟菜单上,那么再来查询它整个对应的二级菜单,以及整个三级菜单,那么先来开发我们的controltrler,来到我们的web里边,那么写来第一个controller叫index controller,那么现在呢,都是来开发我们的。整个页面跳转功能,所以呢,我们来先来标注,第一个注解叫controlrler,我们就不写rest和controlrler了,那现在要进行页面跳转,那controltrler我们第一件要做的事就是我发送杠请求,或者杠index htm Mr都是来首页,那我就来写第一个方法,Public string index配置方法,来到首页的这个方法,这个方法呢,来处理一个请求,Get mapping,这个mapping里边我们来写好路径映射,由于这个干get mapping里边路径映射它可以写一个string数组说明能映射多个,所以呢我们就可以写一个大括号,我们写多个路径,你访问我当前项目的杠,或者访问我当前项目的杠index.html,那都算是呢。
01:41
来到首页,那我们就会调用这个方法来首页呢,我们就得有一个返回值,返回值我们的首页是在timeless下的in htm Mr,我们就返回到这,那不用加HTMMR后缀,因为我们在ma里边,我们的SIM自动配置有前缀prex,我们是class pass,内路镜下的这个time,我们把这个复制来,那看它的这个默认前缀,默认前缀呢是在这来复制过来放到这儿,它呢有一个默认前缀,然后呢也有一个默认后缀,比如我们来点进来,还有我们的后缀,来看一下我们的这个默认后缀,后缀呢都是HTMMR,那它所代表的意义就是我们所有的请求来,如果我们return返回的是一个页面地址,所以我们string,这是一个我们叫逻辑视图,我们返回的是一个我们视图地址,那它就会利用视图解析器,视图解析器进行拼串,那拼串怎么。
02:41
拼呢,就会加上前缀,前缀是这class pass杠代表类路径下的,那我们只要看到我们这个resources这个文件夹,它是这个标志,说明它是类路镜下,所以呢,Class pass杠它会直接来到resources内路镜下,找谁呢?找time文件夹,Timeless文件夹,那前缀呢,我们就找到了,在这个文件夹下找什么?找我们返回值index,好所以说相当于加上我们返回值index,再加上我们的后缀返回值,那后缀呢是HTMMR,相当于呢,就来到了我们index htm2,那相当于视图解析器,我们都是默认配置好的,那只要我们发这个请求,就来到了我们这个页面,好来这个页面呢,我们需要做一件事情,做什么事情呢?我们需要查出,查出我们所有的,我们叫一级分类,我们这个一级分类呢,我们查到以后先在页面进行展示。我们现在页面。
03:41
默认所有的分类数据,我们来往下翻,我们发现这一块呢都是分类数据,每一个Li是一个分类,但这些分类呢,都是写死的,我们需要动态来查询出来,那查询呢,我们就调用我们以前的这个service,查询呢有category对应的service,那我们就来把它注入进来,Category的service我们拿过来,好category service和owa,我们希望呢,它有一个方法能查询一级分类,我们以前的rest接口里边可以查询所有的分类,但是我们现在只要一级分类好,我们就拿到它点一个,比如我们有一个方法叫get level1,我们叫categories,好,Categories,那么这就是我们查询所有的一级分类。
04:26
这一级分类呢,我们就拿到这儿,我们现在得有一个返回值,我们先把这个撤销好,我们来到这们的整个返回值应该是返回我们整个list一级分类,我们can go瑞的整个实体类,好返回这个entities,我们将返回值呢要交给页面,那我们页面开发呢,那就应该可以写一个model,这个model呢是spring m VC给我们提供的一个接口,那给model里边放的数据,它就会放到我们页面的请求育种,我们默认呢,这是一个转发,所以呢,我们and attribute,好,我们attribute我们的内容,比如我们就叫categories们给首页呢放一个属性,属性名呢叫categ瑞,属性值就是我们整个对象,那么页面呢就可以取出来了,以后来到index页面就直接能取了,那么先来创建出这个方法,好创建出这个方法来,添加上我们这个方法的实现,走这个方法的实现呢,就是查询所有的一级分类,这个好查,我们直接拿到它。
05:27
那base member就是category Du,我们去我们对应的caty这张表里边,我们来查,要查一级分类,我们只需要让它cat level等于一,查询条件can level等于一就行,或者呢,我们让它的parent cid等于零,然后这些呢,也代表的是一级分类,它没有负分类,那它就是一级分类,所以这两个都行。比如我们就用parent cid吧,好,我们用parent cid来找到parentd等于零的所有分类by member,我们想要查询集合,我们就调用select list,你有一个corry wrapper,我们的整个查询条件,条件呢,那就是category entity,点一个equal,我们的这一列的列名叫parent cid必须等于我们指定的值,因为是一级分类,所以我们直接写一个零,那parent cid是零的值啊。
06:18
然后呢,我们把这个直接来进行返回,我们CTRL来点进来,那我们这个方法呢,就查出了所有一级分类,那来到我们这个页面index页面,这个页面呢,就可以来取出这个分类,而且页面呢,由于我们使用SIM live模板引擎进行解析,这个类似于呢,跟GSP一样,它也有自己的语法,比如刀乐福,大克号,各种取值,包括便利等等,那这语法呢,我们当然就要参照SIM live的官方文档,好们来到我们SIM live的官方文档,我们来百度来搜索SIM live来找到他的官方文档们来点进来。那么这里边呢,有它的官方文档,我们来看这一块DOSDOS里边我们来找下边有一个using SIM live,我们使用SIM live,它呢有我们在线版的,还有PDF,那我们可以来点击PDF,或者呢,直接将这个呢,我们来下载过来,我们写链接另存为我们把它呢,比如我们来给大家也保存到我们给大家的资料里边,DOS里边好课件里边来也将这个SIM的文档来保存过来,然后呢,我们来打开参照它对应的语法来做就行了。
07:26
好来看它的整个这个文档这一块是拿HTM2我们这个浏览器打开的,来找到它,我们直接用我们的整个阅读器打开,好来到DOS课件里边来打开SIM的整个文档。那我们来参照它的这个文档来做,首先UNCSIM这一块呢,有对SIM的介绍,大家学过spring boot我就不多说这么多了,没用过的同学呢,也可以跟着我直接来用,你就把它当成这是一个GSP,有自己的语法,它比GSP的优点就是它是自然语言,方便我们前后台进行沟通,如果只是纯GSP,我们后台开发人员把JSP页面呢交给前端。
08:07
前端可能呢,不好优化。它浏览器呢都直接打不开,而SIM live呢,直接是用默认的HTMMR浏览器是可以打开的,所以前后协调起来呢就比较方便,那我们想要使用SIM live要做的第一件事,首先来到我们这个页面,这个页面呢,我们要给每一个页面先来加上我们这一块的名称空间,好我们来往下翻,那SIM live呢,这一块都有简单的语法示例,我们拿到一个文档,好这一块呢,我们先把它的这个名称空间我们来复制上来,CTRLC那们复制上粘贴到我们的HTM,二这我们有了SIM live的名称空间,我们接下来就可以用SIM的语法。那我们刚才查询了一些我们的根分类,我们放到了这个categ gra中,我想在HTML页面中取出来,怎么取呢?那我们可以来在下边,比如我们随便来找一个位置。就在我们所有的分类的上边,我们来给它给一个div,那么就在这来取想取值,比如我们来写一个div标签,首先呢,Simif有一个语法叫TH,什么东西叉叉叉,那比如第一个语法th test,那就是div标签里边的文本内容是什么?内容是什么呢?
09:18
我们就可以有各种取值表达式,比如这些表达式呢,就在第四章standard expression sentence。在它的标准表达式语法里边就说了,那这个表达式啊有很多,有Dollar打克号,星号打克号,井号打克号,包括一大堆,那没用过的同学,我们后来用到的,你就一起来用就行了,那先来使用Dollar大括号,这是一个取值表达式,我们可以来取出,我们给我们页面之前请求域中我们放到categories这个值,我们来取出来放到这,那么修改完了以后,想要看到页面的实时效果,我们必须呢在这重启项目,感觉呢还是很麻烦的,那么后来呢,我们来加上dev兔S,我们先来重启一下,如果不重启,我们在这儿看我们的内容肯定是不可以的。
10:06
那现在呢,正在重启,我重启完了以后呢,我们来看我们页面给里边放的整个三级分类的数据,能不能拿到来刷新一下。好,我们看到这一块的内容,我们确实是取出来了,那说明呢,我们就拿到这一块的数据了,好,我们把这一块数据呢,我们就不这么来取了,而真正的数据应该是放在我们这一块,我发现呢,这有一个u Li,每一个都应该是我们取出的三级分类的这个数据,那有多少个Li应该是遍历出来的,那SIM的遍历语法是什么呢?我们可以看它第六章有一个这个遍历,遍历呢,我们SIM要用的一语法就是thche当了福大括号要便利的元素,然后呢,冒号前面就是当前元素,这就跟我们写增强for一样,然后呢,再来取出当前元素各种对应的值,而且呢,我们thche每遍历出一个元素,就会生成我们thche所在的这个标签,就会生成一个这个标签。
11:07
相当于我们要生成多少个这样的标签,我们就给他身上写THH,只要迭代出来一个,就会有这么一个整个完整标签出来,好,我们现在呢,相当于要写我们的整个Li,我们其他下边的这些呢,我们就可以删掉了,我们留下一个UI里边到底有多少Li,包括我们在这一修改刷新页面,我们来看一下效果。那么这块呢,页面并没有动,我们想让页面一刷新一修改就来动实时更新页面,我们可以这么来做好,我们使用SIM live的时候呢,我们也来加上我们这个功能,第四个我们页面。修改我们实时更新不重启服务器的情况下,不重启服务器我们实时更新,这个怎么更新呢?两步,第一步我们只需要引入。我们through boot给我们提供的DV tools这个工具就行了,比如我们来到我们的POM文件中,在这一块呢,我们来引入我们的dependency,在这个依赖里边,所boot为我们提供了一个叫DV tools这个工具,这个工具版本号不用写,然后呢,主要它这有一个叫optional可选的,我们一定要写一个处。
12:19
这个才相当于把我们这个工具呢,真正导入进来了,我们有了这个工具以后,我们现在来,我们来重启一下项目,好重启一下,那先得导入这个工具,那下面呢,我们现在启动起来,启动起来呢,只要加了这个工具的,我们每一个都有一个DV tos,然后呢,我们先来刷新页面,我们之前改了一下,那么这一块呢,只有一个标签了,现在呢,比如我来改一下页面,我在这儿呢,家用电器我来写一个111。我现在呢不重启服务器,我在这儿刷新试一下,我们发大家发现呢,这一块并没有113个字,所以呢,接下来要做第二步,我们把页面修改一下以后,我们使用一个快捷键叫CTRLF9,它的作用呢,相当于在build这一块有一个CTRLF9,把我们项目呢重新编译一下,包括如果我们只改了这个页面,我们也可以使用它的这个只对当前资源重新编译,叫controll shift f9,所以我们只需要controll shift f9或者CTRLF9按一下,我们再来刷新一下页面,发现这一块呢就修改了,但前提是一定要关掉我们SIM live的这个缓存,要不然由于缓存原因我们也看不到效果,所我们的两大步,第一步我们只要导入了我们的D一位兔TH,第二步,最快的方式修改完页面修改完页面我们使用crl shift f9。
13:47
重新自动编译一下页面就行了,那就可以用到最新的效果了,但是如果我们修改了类,修改了配置,我们还是推荐大家在这呢启动,因为这种热启动呢,会产生一些。
14:03
各种非我们业务以及代码的这些bug,好,我们在这呢说一下,如果是代码配置,代码配置我们还是推荐呢,重启一下就行。好,那么现在页面呢,拿到了实时数据,我们现在就来遍历,那这一块页面所有的Li不止这一个,我们来写我们的SIM live语法TH,我要遍历写TH,然要遍历哪个元素呢?首先Dollar福大括号,我们在来到页面之前放了一个categ这个元素,好,每一个元素遍历出来,我们就叫category,然后呢,我们接下来每一个里边要取出当前元素,我们当前的分类的名字,在这要进行展示,所以我们把B标签的这一块内容,我们要写成我们分类的名字,当然原内容呢,大家可以不删。我们直接可以在B标签上使用th test test呢,就是我们B标签的内容,用我们新的值来替换,哪个值呢?我们写Dollar符大括号,我们叫cat,这是我们的这个变量,这个变量里边相当于我们取出了每一个元素,每一个元素里边有它的name值,这一块都有提示,因为我们当时给这一块放的是这个集合,集合里边每一个元素它有这个name值啊,来写上它的这个name。
15:24
然后注意这一块ctg data相当于category的data,这一块呢是当前我们分类的ID,因为我们鼠标滑到这儿以后,我们要根据当前分类,还要找到它的所有二三级分类,所以我们需要它的ID。那这个三该怎么取值呢?而且这个CTG贝塔,这是我们的自定义属性,自定义属性呢,在SIM live里边可以用我们这个语法,我们来到我们的setting attributes里边,我们在设置属性的时候,我们在这呢,可以来指定我们的自定义属性,我们使用TR,我们的属性名叫什么,还有属性值叫什么,我们都可以来在这赋值它的原生属性,可以直接使用PH冒号原生属性进行赋值,所以呢,如果是自定义属性,那么在这呢,推荐我们来这么来用,我们使用R。
16:15
At tr呢,我们这个属性就等于一个值,好这个属性名是它,那值是多少呢?Dollar符大括号我们来取出来,把这个呢我们就删掉,这个值呢,就应该是我们当前正在遍历的这个元素的分类ID,我们这有一个cat ID,那么页面这块就写好了,我们crl shift f9,我们来页面编译一下,我们在这呢重新来刷新,来看一下我们的整个页面效果,来在这来刷新,好。我们现在重新访问呢,我们将我们所有的分类呢,我们在这儿呢,都展示出来了,而且呢,我们鼠标划在这儿呢,我们要查询出我们的内容啊,这一块的内容呢,目前也是写死的,我们一会儿还要把它动态的做出来。
17:01
这块显示不完全的效果,我们一会儿再来优化。我们来审查元素的时候,我们来再看一下,审查元素呢,我们每一个的自定义属性也取出来了,包括它里边的文本内容也都是我们自己遍历的,那么页面呢,这个根分类我们就刷出来了。
我来说两句