少数派

应用thymeleaf、webjars,配合热部署

效果图

效果图.png

bean

顶部导航

package com.niit.quickStart.bean;

import lombok.Data;

/**
 * Created by lenovo on 2018/9/10.
 */
@Data
public class Top {
    private String logo;
    private String name;
    private String pencil;
    private String middle;
    private String search;
    private String message;
    private String avatar;
}

主要内容

package com.niit.quickStart.bean;

import lombok.Data;

/**
 * Created by lenovo on 2018/9/10.
 */
@Data
public class Content {
    private String avatar;
    private String nickname;
    private String updatetime;
    private String title;
    private String article;
    private String picture;
    private String good;
    private String number;

    public Content() {

    }

    public Content(String avatar, String nickname, String updatetime, String title, String article, String picture, String good, String number) {
        this.avatar = avatar;
        this.nickname = nickname;
        this.updatetime = updatetime;
        this.title = title;
        this.article = article;
        this.picture = picture;
        this.good = good;
        this.number = number;
    }

}

右侧广告

package com.niit.quickStart.bean;

import lombok.Data;

/**
 * Created by lenovo on 2018/9/10.
 */
@Data
public class Page {
    private String front;

    public Page(String front) {
        this.front = front;
    }

    public Page(){

    }
}

DAO数据层

package com.niit.quickStart.dao;


import com.niit.quickStart.bean.Content;
import com.niit.quickStart.bean.Page;
import com.niit.quickStart.bean.Top;
import lombok.Data;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;
import java.util.List;

/**
 * Created by lenovo on 2018/9/10.
 */
@Data
@Configuration
public class TopDAO {
    public Top getTop(){
        Top top = new Top();
        top.setName("少数派");
        top.setLogo("logo.ico");
        top.setMiddle("推荐应用");
        top.setPencil("pencil.png");
        top.setSearch("search.png");
        top.setMessage("message.png");
        top.setAvatar("avatar.PNG");
        return top ;
    }

    public List<Content> getContents(){
        Content[] contents={
        new Content("a1.jpg","少数派编辑部","2天前","一派|苹果秋季发布会你最期待什么新产品?","这一期的一派,少数派编辑们对下周的苹果秋季发布会谈了谈自己最期待的产品以及购置计划。同时我们也想听听大家的想法。","p1.jpg","20","30"),
        new Content("a2.jpg","少数派编辑部","2天前","工作日让家中电脑不再闲置,其实你可以遥控他做很多事","如果打个小算盘你就会发现家中电脑的利用率低到令人发指的地步,那么怎么才能在工作日的时候让家中的电脑也能被充分利用起来呢?","p2.jpg","20","30"),
        new Content("a3.jpg","少数派编辑部","2天前","5种方法,在电脑和手机里告别百度搜索里的广告","百度上各种广告对用户搜索体验造成的不良影响已不是什么新鲜事。在这篇文章中,我将向大家介绍一些在电脑和手机上减少百度推广广告出现的方法,还你干净快捷的搜索体验。","p3.jpg","20","30"),
        new Content("a4.jpg","少数派编辑部","2天前","Chorme在十周年发布了新版本,除了好看还更安全","Google 在 Chrome 十周年之际向全平台推送了 Chrome 69 正式版的更新,为我们带来了采用全新设计的 Google material theme 主题,同时还新增了许多新功能,特别在安全性方面做出了很大的提升。","p4.jpg","20","30"),
        new Content("a5.jpg","少数派编辑部","2天前","Mac上最好用的系统清理工具大更新,现在你还可以用它更新应用:CleanMyMac X","CleanMyMac X 率先在 Setapp 平台上推出,大版本更新不但带来了全新设计的应用界面,还新增了许多实用的工具,满足了 Mac 使用者清理系统的日常需求。","p5.jpg","20","30"),
        };
        List<Content> contentList = Arrays.asList(contents);
        return contentList;
    }

    public List<Page> getPages(){
        Page[] pages={
                new Page("s1.png"),
                new Page("s2.png"),
                new Page("s3.png"),
                new Page("s4.png"),
        };
        List<Page> pageList = Arrays.asList(pages);
        return pageList;
    }
}

Controller数据传输控制层

package com.niit.quickStart.controller;

import com.niit.quickStart.bean.Content;
import com.niit.quickStart.bean.Page;
import com.niit.quickStart.bean.Top;
//import com.niit.quickStart.dao.NavigationDAO;
import com.niit.quickStart.dao.TopDAO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by lenovo on 2018/9/10.
 */
@Controller
public class TopController {
    @Resource
    private TopDAO topDAO;

    @GetMapping("ssp")
    public String getAll(ModelMap map){
        Top top  = topDAO.getTop();
        List<Content> contentList=topDAO.getContents();
        List<Page> pageList = topDAO.getPages();
        map.addAttribute("pageList",pageList);
        map.addAttribute("contentList",contentList);
        map.addAttribute("top",top);
        return "ssp";
        }
}

网页HTML

<html xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" />
    <title>少数派</title>
    <style>
        .avatar1{
            width: 50px;
            height: 50px;
            margin-top: 5px;
        }
        .bar{
            background-color: black;
            text-align: center;
        }
        .name{
            font-size: 18px;
            font-style: normal;
            color: white;
        }
        .center{
            font-size:30px;
            color:white;
            margin-top: 10px;
        }
        .font{
            margin-left: 20px;
        }
        .li {
            width: 130px;
            text-align: center;
            color: black;
        }
        .down{
            margin-top: 20px;
            margin-left:20px;
        }
        .avatar{
            width:45px;
            height:45px;
            float: left;
        }
        .font2{
            color: lightgray;
        }
        .font-total{
            margin-left: 70px;
        }
        .total{
            margin-left: 20px;
            margin-top: 20px;
        }
        .font-big{
            margin-top: 10px;
            font-size: 25px;
            font-weight: 700;
        }
        .pic{
            width: 200px;
            height: 100px;
        }
        .tuijian{
            font-weight: 600;
        }
        .chakan{
            color: gray;
            float: right;
        }
        .front{
            width: 360px;
            height: 200px;
        }
    </style>
</head>
<body>
    <nav class="navbar navbar-default bar">
        <div class="container">
            <div class="row">
                <div class="col-md-2">
                    <img th:src="@{'img/'+${top.logo}}" class="img-circle logo">
                    <span class="name" th:text="${top.name}"></span>
                </div>
                <div class="col-md-8">
                    <span class="center" >#热门文章</span>
                </div>
                <div class="col-md-2 avatar1" >
                    <img th:src="@{'img/'+${top.avatar}}"  class="img-circle avatar1">
                </div>
            </div>
        </div>
    </nav>
    <div class="container">
        <div class="font">
            <ul class="nav nav-tabs">
                <li role="presentation" class="li"><a href="#">正版软件</a></li>
                <li role="presentation" class="li" ><a href="#">付费栏目</a></li>
                <li role="presentation" class="li"><a href="#">Matrix</a></li>
                <li role="presentation" class="li"><a href="#">专题广场</a></li>
                <li role="presentation" class="li"><a href="#">热门文章</a></li>
                <li role="presentation" class="li"><a href="#">应用推荐</a></li>
                <li role="presentation" class="li"><a href="#">生活方式</a></li>
                <li role="presentation" class="li"><a href="#">新玩意</a></li>
            </ul>
        </div>
    </div>
    <div class="container">
        <div class="down">
            <div class="row">
                <div class="col-md-8">
                    <div th:each="content:${contentList}">
                    <div class="thumbnail">
                        <div class="total">

                            <div class="font-total">
                                <div class="row">
                                    <div class="col-md-1"style="float:left" >
                                        <img th:src="@{'img/' + ${content.avatar}}" class="img-circle avatar1">
                                    </div>
                                    <div class="col-md-3" >
                                        <span class="font1" th:text="${content.nickname}"></span><br>
                                        <span class="font2" th:text="${content.updatetime}"></span>
                                    </div>
                                    <div class="col-md-8"></div>
                                </div>
                            </div >

                            <div class="row">
                                <div class="col-md-8">
                                    <p class="font-big" th:text="${content.title}"></p>
                                    <p th:text="${content.article}"></p>
                                </div>
                                <div class="col-md-4 ">
                                    <img th:src="@{'img/' + ${content.picture}}" class="pic">
                                </div>
                                <div style="margin-left: 590px">
                                    <img th:src="@{img/love.png}">
                                    <span class="font2" th:text="${content.good}"></span>
                                    <img th:src="@{img/number.png}">
                                    <span class="font2" th:text="${content.number}"></span>
                                </div>
                            </div>
                        </div>
                    </div>
                    </div>
                </div>
                <div class="col-md-4" >
                    <span class="tuijian">推荐专题</span>
                    <span class="chakan">查看全部</span>
                    <div th:each="page:${pageList}" style="position: relative">
                        <img th:src="@{'img/'+ ${page.front}}" class="front" >
                    </div>

                </div>
            </div>
        </div>
    </div>
</body>
</html>

成果图

成果图.png

总结

此次实践,就是数据与页面进行分离,然后进行数据绑定,同时应用了热部署,这样是提高了效率。同时,也发现了自己在HTML方面的不足,还有待提高。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,369评论 1 92
  • 左岸工社,六层,WEPAC。 在左岸工社创业者汇集,节奏紧张而又充满活力。获得天使轮投资,产品内测不久的西会科技,...
    优云数智阅读 395评论 0 0
  • 从立秋以后开始,可以入睡了,前两天是两点左右醒,到立秋的第六天开始,觉睡的就很好了,入睡不难也不半夜醒,但有一个问...
    流沙燕儿阅读 146评论 0 0
  • (1)降低期望,更多的是惊喜 按照我们家的惯例~每周六是徒步日。所以上个周六也不例外,我和儿子去...
    乐兜阅读 1,009评论 0 0
  • 学习这一章节,从以高目标为动力开始到付出不亚于任何人的努力乃是自然机理,粗略总结一下,人本来就具备梦想成真的巨大潜...
    沈军耀阅读 698评论 0 0