使用Spring框架对接Twitter(二)
来源:互联网 发布:淘宝买airpods靠谱吗 编辑:程序博客网 时间:2024/06/05 02:34
在上一节中,我们添加了控制层的相关逻辑处理。这样的话我们的应用程序 是还没有完善的,我们还需要添加视图层才可行。为了美观,我们在这里用了WebJars的架包,所以我们要先了解这个技术。
1.使用WebJars来设计视图
接下来的视图设计中,我们将会应用一个很好的框架,它是由CSS和JavaScript响应的框架,读者可以登录http://materializecss.com这个网站去了解。好看的视图页面如下:
如果我们想使用个框架,那么我们需要在我们自己的项目的文件build.gradel文件中添加对应的架包。
compile 'org.webjars:materializecss:0.96.0'compile 'org.webjars:jquery:2.1.4'
在使用的页面中,我们需要添加下面的代码,说明是使用CSS的部分。
<link href="/webjars/materializecss/0.96.0/css/materialize.css"type="text/css" rel="stylesheet" media="screen,projection"/>
2.使用layouts
layouts的设计的目的是减少代码的重复,换句话说就是将重复利用的代码统一封装起来。为了达到这样的目的,我们将用到thymeleaf-layout-dialect的依赖架包,这个架包主要包含spring-boot-starter-thymeleaf这个的依赖在我们项目中。
我们将文件有名字称为default.html,并将它放到src/main/resource/templates/layout下。下面是它包含的代码。
<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"><head> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/> <title>Default title</title> <link href="/webjars/materializecss/0.96.0/css/materialize.css" type="text/css" rel="stylesheet" media="screen,projection"/></head><body> <section layout:fragment="content"> <p>Page content goes here</p> </section> <script src="/webjars/jquery/2.1.4/jquery.js"></script> <script src="/webjars/materializecss/0.96.0/js/materialize.js"></script></body></html>
3.创建一个searchPage视图
在添加所有的视图中,不要忘记了添加下面有两行到对应的文件的头部地方。文件名叫searchPage.html,路径:src/main/resource/templates/
xmlns:th="http://www.w3.org/1999/xhtml" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout/default"添加的searchPage的页面的代码如下: <!DOCTYPE html><html xmlns:th="http://www.w3.org/1999/xhtml" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout/default"><head lang="en"> <title>Search</title></head><body> <div class="row" layout:fragment="content"> <h4 class="indigo-text center">Please enter a search term</h4> <!--错误时候的提示--> <div class="col s6 offset-s3"> <div id="errorMessage" class="card-panel red lighten-2" th:if="${error}"> <span class="card-title" th:text="${error}"></span> </div> </div> <!--查找时用的表单--> <form action="/postSearch" method="post" class="col s12"> <div class="row center"> <div class="input-field col s6 offset-s3"> <!--添加搜索的图标--> <i class="mdi-action-search prefix"></i> <!--查找框--> <input id="search" name="search" type="text" class="validate"/> <!--添加的标签,只要用户还没有输入就显示,输入了标签上移,for值与上面的id一样--> <label for="search">Search</label> </div> </div> </form> </div></body></html>
从上面的代码中我们可以看到,我们在最开始的地方添加了错误信息的提示代码。对应上一节和知识,相信读者可以明白这个原理是怎么来的。${error}信息无非就是控制层传过来的。当然,我们还定义了个表单,这个表单提交后访问的地址是“/postSearch”,对应了上一节所讲的@RequestMapping。还有一些CSS的设计,读者自己体会。运行之后,你将会看到的视图效果如下。
4.创建一个resultPage视图
resultPage的页面就是将控制层逻辑处理后的数据传到客户端,并展现给客户看的。代码如下。文件名叫:resultPage.html,路径在:src/main/resource/templates/
<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout/default"><head lang="en"> <!--<meta charset="UTF-8"/>--> <title>Hello twitter</title><!-- <link href="/webjars/materializecss/0.96.0/css/materialize.css" type="text/css" rel="stylesheet" media="screen,projection"/>--></head><body><div class="row" layout:fragment="content"> <h2 class="indigo-text center" th:text="|Tweet results for ${search}|">Tweets</h2> <ul class="collection"> <li class="collection-item avatar" th:each="tweet : ${tweets}"> <img th:src="${tweet.user.profileImageUrl}" alt="" class="circle"/> <span class="title" th:text="${tweet.user.name}">Username</span> <p th:text="${tweet.text}">Tweet message</p> </li> </ul></div><!--<script src="/webjars/jquery/2.1.4/jquery.js"></script><script src="/webjars/materializecss/0.96.0/js/materialize.js"></script>--></body></html>
从上面的代码中,我想有经验的读者应该知道其中有原理,当然还的Spring的SpEL表达式。具体的信息应该如下。读者自己体会。
执行resultPage后,你将会看到如下的结果。
5.总结
通过这一节的学习,笔者向大家展示了视图层是如何实现。为了美观,我们还用了WebJars的框架来设计。同时,为了不让代码有太多的重复,我们还使用了SpringMVC的功能Layout的设计。最后,我们看一下我们项目的层次结构。
源码路径:git@github.com:owenwilliam/masterSpringMVC.git
- 使用Spring框架对接Twitter(二)
- 使用Spring框架对接Twitter(一)
- 说说twitter(二)
- Twitter(二)
- Spring框架(二)
- Spring 框架(二)
- Spring 框架(二)
- Spring 框架(二)
- Spring 框架(二)
- spring整合使用持久层框架mybatis(二)
- 数据对接—kettle使用之二
- spring对接InfluxDB(二)--数据获取之单条查询
- spring框架学习(二)
- 浅谈spring框架(二)
- Spring框架学习(二)
- 初识Spring框架(二)
- Spring框架学习之二使用流程
- spring mvc框架和蓝信做对接。 总结一下。
- 梳理es中的几个基本概念
- 安卓开发,从相册或者相机中选择一张图片并裁剪,上传和下载。
- 梳理es中的几个概念
- runTime(二)应用 Method Swizzling
- es中的mapping
- 使用Spring框架对接Twitter(二)
- SpringMVC创建用户信息(一)
- SpringMVC日期处理(二)
- SpringMVC错误提示(三)
- LeetCode--No.21--Merge Two Sorted List
- SpringMVC深入信息提示(四)
- [SM] 双城地图,沿着小河走到一个位置附近的时候,脚下的河水就消失了。
- Linux内核:驱动程序
- SpringMVC国际化(i18n)(五)