1使用Apache Tiles视图定义布局
在jsp中布局并不是做的很好,最好的方式就是使用布局引擎。我们在这里介绍下Apache Tiles 这个布局引擎。定义适用于所有页面的布局,并且SpringMvc视图解析器也能够将逻辑视图名解析为Tile定义。
在Sping中使用Tiles 我们需要配置好bean在xml中或者java程序中。
这就我们在程序中上面配置好需要用到 的视图,并且要启动刷新功能。
如果不喜欢在java程序中配置。我们可以在xml文件中配置好TilesConfigurer和TilesViewResolver:
在这里TilesConfigurer回家再Tile定义并与ApacheTiles协作,而TilesViewRe-solver会将伙计视图名称解析为Tile定义的视图。
在这里面最终引用的还是在jsp模板当中。我们在某个jsp当中怎么将模板嵌入进去呢?这里就会使用到<t:insert Attribute>这个标签来引入我们需要的模板。
2使用Thymeleaf模板来代替jsp
为什么使用Thymeleaf模板,是因为有自定义的命名空间,并且给html标签集合添加Thymeleaf属性。
首先我们需要配置视图解析器,模板加载并且渲染模板。
还是提供了两种配置方式来解析bean.使用java程序或者xml文件来解析。不管使用哪种配置方式都可以将响应的模板渲染到mvc中。
我们先写一个首页的html,并且在其中引入模板
在这里我们使用简单的th:href属性,这个是对应html中的href属性。我们在jsp中经常用jstl表达式来解析值,但是在Thymeleaf这个模板中我们用@{}来计算路径。
我们使用jsp中也使用它的表单数据提交,接下来我们就说下Thymeleaf的表单数据提交
首先都是在form上表单绑定了 th:object 对象,在表单中得th:fields就是绑定对象中的属性*{属性名称}。在这里简单介绍下表达式的不同${}表达式就是变量表达式,一般是ognl表达式,但是在Spring中是SpEL表达式。而*{}属于选择表达式,在上图中选中的对象就是th:object属性所设置的对象:模型中的Spitter对象。因此*{firstName}表达式就会计算为Spitter对象中的firstName属性。具体关于Thymeleaf模板的信息我们可以去官网进行学习 http://www.thymeleaf.org/