发表于: 2018-01-23 20:57:19

3 756


今天做的内容:

利用tiles完成了对html文件的拆分,处理了加载静态资源的问题。

首先是在springMVC.xml中添加tiles的一个视图解析器,注意其优先级要比普通的jsp视图解析器优先等级高,不然出现重名的时候,会忽略tiles的配置(order越小,优先级越高):

  

网上的资料,优先级的设定是用p命名空间写的,我不太喜欢这个,改成这样子了。其实这个视图解析器和其他解析器一样,可以配置很多property属性,比如后缀名什么的。


然后是tiles.xml的配置:

这里可以用extends,然后类似于JAVA“重写”其中某一部分的内容。因为本次拆分的项目数量有点少,就首尾两处,就不用这种方法了。


然后是拆分html,这里是首尾两个tiles组件:

header.jsp:


footer.jsp:


这里要注意的一点是,因为我们是相当于拆分再组装上去,所以对应的tiles组件肯定是一模一样的,所以要修改css中的一些变量(方法???)名字,使之对应,不然就做不出效果来。此外,html中的一些静态链接也要改过来,然后在contrller层加上对应的mapping,就能实现对应的跳转了。


这里有个问题,关于静态资源(css这些),需要额外的配置才能成功加载到,在本地上可以采取激活浏览器自带的静态文件处理功能,在web.xml里面配置:

然而并不推荐这样子做,在服务器端使用nginx的动静分离比较好,这个我明天去实现。其次,还有一个关于结构上的小问题。之前一直不知道WEB-INF这个文件夹的含义,今天才知道他是webapp的安全文件夹,里面的文件应该是访客无法访问的,所以jsp这些东西要拎到外面来。这里附上一张结构图(SSM框架的):


晚上完成的任务进度比较少,我尝试了一下在c:foreach中套用tiles,结果惨遭失败,本来的设计是这样子的:

下面省略了c:if判断,用来输出最后一行。


然后在tiles的组件中使用这个a这个var,读取对象中包含成员变量的值,这样子就实现换行输出...我尝试了一下,发现这条路走不通,还是老老实实在一个界面里面套用c:foreach,把里面的内容写全吧....

(感觉tiles的功能不应该这么有限,如果组件里面不能加载动态数据,那就只能用来拆分html的静态内容了...)


明天要做的事情:开始建立表格,添加动态数据


今天遇到的问题:c:foreach中套用tiles失败的问题。


今天的收获:学习了很多新的知识点


返回列表 返回列表
评论

    分享到