完成cms前台
This commit is contained in:
parent
dd92445bdb
commit
c4c668042d
|
@ -0,0 +1,35 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.CmsArticle;
|
||||||
|
import com.zheng.cms.rpc.api.CmsArticleService;
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/article")
|
||||||
|
public class ArticleController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(ArticleController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsArticleService cmsArticleService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{articleId}", method = RequestMethod.GET)
|
||||||
|
public String index(@PathVariable("articleId") int articleId, Model model) {
|
||||||
|
CmsArticle article = cmsArticleService.selectByPrimaryKey(articleId);
|
||||||
|
model.addAttribute("article", article);
|
||||||
|
return thymeleaf("/article/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 博客首页控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/blog")
|
||||||
|
public class BlogController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(BlogController.class);
|
||||||
|
|
||||||
|
@RequestMapping(value = "", method = RequestMethod.GET)
|
||||||
|
public String index(Model model) {
|
||||||
|
return thymeleaf("/blog/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.*;
|
||||||
|
import com.zheng.cms.rpc.api.*;
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import com.zheng.common.util.Paginator;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类目控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/category")
|
||||||
|
public class CategoryController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(CategoryController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsCategoryService cmsCategoryService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsArticleService cmsArticleService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{alias}", method = RequestMethod.GET)
|
||||||
|
public String index(@PathVariable("alias") String alias,
|
||||||
|
@RequestParam(required = false, defaultValue = "1", value = "page") int page,
|
||||||
|
@RequestParam(required = false, defaultValue = "orders", value = "sort") String sort,
|
||||||
|
@RequestParam(required = false, defaultValue = "desc", value = "order") String order,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Model model) {
|
||||||
|
// 当前类目
|
||||||
|
CmsCategoryExample cmsCategoryExample = new CmsCategoryExample();
|
||||||
|
cmsCategoryExample.createCriteria()
|
||||||
|
.andAliasEqualTo(alias);
|
||||||
|
CmsCategory category = cmsCategoryService.selectFirstByExample(cmsCategoryExample);
|
||||||
|
model.addAttribute("category", category);
|
||||||
|
// 该类目文章列表
|
||||||
|
int rows = 10;
|
||||||
|
CmsArticleExample cmsArticleExample = new CmsArticleExample();
|
||||||
|
cmsArticleExample.createCriteria()
|
||||||
|
.andStatusEqualTo((byte) 1);
|
||||||
|
cmsArticleExample.setOffset((page - 1) * rows);
|
||||||
|
cmsArticleExample.setLimit(rows);
|
||||||
|
if (!StringUtils.isBlank(sort) && !StringUtils.isBlank(order)) {
|
||||||
|
cmsArticleExample.setOrderByClause(sort + " " + order);
|
||||||
|
}
|
||||||
|
List<CmsArticle> articles = cmsArticleService.selectByExample(cmsArticleExample);
|
||||||
|
model.addAttribute("articles", articles);
|
||||||
|
// 文章总数
|
||||||
|
long total = cmsArticleService.countByExample(cmsArticleExample);
|
||||||
|
// 分页
|
||||||
|
Paginator paginator = new Paginator(total, page, rows, request);
|
||||||
|
model.addAttribute("paginator", paginator);
|
||||||
|
return thymeleaf("/category/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,9 +1,7 @@
|
||||||
package com.zheng.cms.web.controller;
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
import com.zheng.cms.dao.model.*;
|
import com.zheng.cms.dao.model.*;
|
||||||
import com.zheng.cms.rpc.api.CmsCategoryService;
|
import com.zheng.cms.rpc.api.*;
|
||||||
import com.zheng.cms.rpc.api.CmsMenuService;
|
|
||||||
import com.zheng.cms.rpc.api.CmsTagService;
|
|
||||||
import com.zheng.common.base.BaseController;
|
import com.zheng.common.base.BaseController;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -22,35 +20,57 @@ import java.util.List;
|
||||||
@Controller
|
@Controller
|
||||||
public class IndexController extends BaseController {
|
public class IndexController extends BaseController {
|
||||||
|
|
||||||
private static Logger _log = LoggerFactory.getLogger(IndexController.class);
|
private static Logger _log = LoggerFactory.getLogger(IndexController.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CmsMenuService cmsMenuService;
|
private CmsMenuService cmsMenuService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CmsCategoryService cmsCategoryService;
|
private CmsCategoryService cmsCategoryService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CmsTagService cmsTagService;
|
private CmsTagService cmsTagService;
|
||||||
|
|
||||||
@RequestMapping(value = "", method = RequestMethod.GET)
|
@Autowired
|
||||||
public String index(Model model) {
|
private CmsTopicService cmsTopicService;
|
||||||
// 菜单
|
|
||||||
CmsMenuExample cmsMenuExample = new CmsMenuExample();
|
@Autowired
|
||||||
cmsMenuExample.setOrderByClause("orders asc");
|
private CmsArticleService cmsArticleService;
|
||||||
List<CmsMenu> menus = cmsMenuService.selectByExample(cmsMenuExample);
|
|
||||||
model.addAttribute("menus", menus);
|
@RequestMapping(value = "", method = RequestMethod.GET)
|
||||||
// 所有分类
|
public String index(Model model) {
|
||||||
CmsCategoryExample cmsCategoryExample = new CmsCategoryExample();
|
// 菜单
|
||||||
cmsCategoryExample.setOrderByClause("orders asc");
|
CmsMenuExample cmsMenuExample = new CmsMenuExample();
|
||||||
List<CmsCategory> categories = cmsCategoryService.selectByExample(cmsCategoryExample);
|
cmsMenuExample.setOrderByClause("orders asc");
|
||||||
model.addAttribute("categories", categories);
|
List<CmsMenu> menus = cmsMenuService.selectByExample(cmsMenuExample);
|
||||||
// 所有标签
|
model.addAttribute("menus", menus);
|
||||||
CmsTagExample cmsTagExample = new CmsTagExample();
|
// 所有类目
|
||||||
cmsTagExample.setOrderByClause("orders asc");
|
CmsCategoryExample cmsCategoryExample = new CmsCategoryExample();
|
||||||
List<CmsTag> tags = cmsTagService.selectByExample(cmsTagExample);
|
cmsCategoryExample.setOrderByClause("orders asc");
|
||||||
model.addAttribute("tags", tags);
|
List<CmsCategory> categories = cmsCategoryService.selectByExample(cmsCategoryExample);
|
||||||
return thymeleaf("/index");
|
model.addAttribute("categories", categories);
|
||||||
}
|
// 所有标签
|
||||||
|
CmsTagExample cmsTagExample = new CmsTagExample();
|
||||||
|
cmsTagExample.setOrderByClause("orders asc");
|
||||||
|
List<CmsTag> tags = cmsTagService.selectByExample(cmsTagExample);
|
||||||
|
model.addAttribute("tags", tags);
|
||||||
|
// 最新5个专题
|
||||||
|
CmsTopicExample cmsTopicExample = new CmsTopicExample();
|
||||||
|
cmsTopicExample.setOrderByClause("ctime desc");
|
||||||
|
List<CmsTopic> topics = cmsTopicService.selectByExample(cmsTopicExample);
|
||||||
|
model.addAttribute("topics", topics);
|
||||||
|
// 最新5条文章
|
||||||
|
CmsArticleExample cmsArticleExample = new CmsArticleExample();
|
||||||
|
cmsArticleExample.createCriteria()
|
||||||
|
.andStatusEqualTo((byte) 1);
|
||||||
|
cmsArticleExample.setOrderByClause("orders desc");
|
||||||
|
List<CmsArticle> newArticles = cmsArticleService.selectByExample(cmsArticleExample);
|
||||||
|
model.addAttribute("newArticles", newArticles);
|
||||||
|
// 最火5条文章
|
||||||
|
cmsArticleExample.setOrderByClause("readnumber desc");
|
||||||
|
List<CmsArticle> hotArticles = cmsArticleService.selectByExample(cmsArticleExample);
|
||||||
|
model.addAttribute("hotArticles", hotArticles);
|
||||||
|
return thymeleaf("/index");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 资讯首页控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/news")
|
||||||
|
public class NewsController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(NewsController.class);
|
||||||
|
|
||||||
|
@RequestMapping(value = "", method = RequestMethod.GET)
|
||||||
|
public String index(Model model) {
|
||||||
|
return thymeleaf("/news/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.CmsPage;
|
||||||
|
import com.zheng.cms.dao.model.CmsPageExample;
|
||||||
|
import com.zheng.cms.rpc.api.CmsPageService;
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单页控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/page")
|
||||||
|
public class PageController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(PageController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsPageService cmsPageService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{alias}", method = RequestMethod.GET)
|
||||||
|
public String index(@PathVariable("alias") String alias, Model model) {
|
||||||
|
CmsPageExample cmsPageExample = new CmsPageExample();
|
||||||
|
cmsPageExample.createCriteria()
|
||||||
|
.andAliasEqualTo(alias);
|
||||||
|
CmsPage page = cmsPageService.selectFirstByExampleWithBLOBs(cmsPageExample);
|
||||||
|
model.addAttribute("page", page);
|
||||||
|
return thymeleaf("/page/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问答首页控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/qa")
|
||||||
|
public class QaController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(QaController.class);
|
||||||
|
|
||||||
|
@RequestMapping(value = "", method = RequestMethod.GET)
|
||||||
|
public String index(Model model) {
|
||||||
|
return thymeleaf("/qa/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.CmsArticle;
|
||||||
|
import com.zheng.cms.dao.model.CmsArticleExample;
|
||||||
|
import com.zheng.cms.dao.model.CmsTag;
|
||||||
|
import com.zheng.cms.dao.model.CmsTagExample;
|
||||||
|
import com.zheng.cms.rpc.api.CmsArticleService;
|
||||||
|
import com.zheng.cms.rpc.api.CmsTagService;
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import com.zheng.common.util.Paginator;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 搜索控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/search")
|
||||||
|
public class SearchController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(SearchController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsArticleService cmsArticleService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{keyword}", method = RequestMethod.GET)
|
||||||
|
public String index(@PathVariable("keyword") String keyword,
|
||||||
|
@RequestParam(required = false, defaultValue = "1", value = "page") int page,
|
||||||
|
@RequestParam(required = false, defaultValue = "orders", value = "sort") String sort,
|
||||||
|
@RequestParam(required = false, defaultValue = "desc", value = "order") String order,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Model model) {
|
||||||
|
// 该关键字文章列表
|
||||||
|
int rows = 10;
|
||||||
|
CmsArticleExample cmsArticleExample = new CmsArticleExample();
|
||||||
|
cmsArticleExample.createCriteria()
|
||||||
|
.andStatusEqualTo((byte) 1)
|
||||||
|
.andTitleLike(keyword);
|
||||||
|
cmsArticleExample.setOffset((page - 1) * rows);
|
||||||
|
cmsArticleExample.setLimit(rows);
|
||||||
|
if (!StringUtils.isBlank(sort) && !StringUtils.isBlank(order)) {
|
||||||
|
cmsArticleExample.setOrderByClause(sort + " " + order);
|
||||||
|
}
|
||||||
|
List<CmsArticle> articles = cmsArticleService.selectByExample(cmsArticleExample);
|
||||||
|
model.addAttribute("articles", articles);
|
||||||
|
// 文章总数
|
||||||
|
long total = cmsArticleService.countByExample(cmsArticleExample);
|
||||||
|
// 分页
|
||||||
|
Paginator paginator = new Paginator(total, page, rows, request);
|
||||||
|
model.addAttribute("paginator", paginator);
|
||||||
|
return thymeleaf("/search/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.*;
|
||||||
|
import com.zheng.cms.rpc.api.CmsArticleService;
|
||||||
|
import com.zheng.cms.rpc.api.CmsCategoryService;
|
||||||
|
import com.zheng.cms.rpc.api.CmsTagService;
|
||||||
|
import com.zheng.cms.rpc.api.CmsTopicService;
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import com.zheng.common.util.Paginator;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标签控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/tag")
|
||||||
|
public class TagController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(TagController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsTagService cmsTagService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsArticleService cmsArticleService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{alias}", method = RequestMethod.GET)
|
||||||
|
public String index(@PathVariable("alias") String alias,
|
||||||
|
@RequestParam(required = false, defaultValue = "1", value = "page") int page,
|
||||||
|
@RequestParam(required = false, defaultValue = "orders", value = "sort") String sort,
|
||||||
|
@RequestParam(required = false, defaultValue = "desc", value = "order") String order,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Model model) {
|
||||||
|
// 当前标签
|
||||||
|
CmsTagExample cmsTagExample = new CmsTagExample();
|
||||||
|
cmsTagExample.createCriteria()
|
||||||
|
.andAliasEqualTo(alias);
|
||||||
|
CmsTag tag = cmsTagService.selectFirstByExample(cmsTagExample);
|
||||||
|
model.addAttribute("tag", tag);
|
||||||
|
// 该标签文章列表
|
||||||
|
int rows = 10;
|
||||||
|
CmsArticleExample cmsArticleExample = new CmsArticleExample();
|
||||||
|
cmsArticleExample.createCriteria()
|
||||||
|
.andStatusEqualTo((byte) 1);
|
||||||
|
cmsArticleExample.setOffset((page - 1) * rows);
|
||||||
|
cmsArticleExample.setLimit(rows);
|
||||||
|
if (!StringUtils.isBlank(sort) && !StringUtils.isBlank(order)) {
|
||||||
|
cmsArticleExample.setOrderByClause(sort + " " + order);
|
||||||
|
}
|
||||||
|
List<CmsArticle> articles = cmsArticleService.selectByExample(cmsArticleExample);
|
||||||
|
model.addAttribute("articles", articles);
|
||||||
|
// 文章总数
|
||||||
|
long total = cmsArticleService.countByExample(cmsArticleExample);
|
||||||
|
// 分页
|
||||||
|
Paginator paginator = new Paginator(total, page, rows, request);
|
||||||
|
model.addAttribute("paginator", paginator);
|
||||||
|
return thymeleaf("/tag/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.zheng.cms.web.controller;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.CmsTopic;
|
||||||
|
import com.zheng.cms.dao.model.CmsTopicExample;
|
||||||
|
import com.zheng.cms.rpc.api.CmsTopicService;
|
||||||
|
import com.zheng.common.base.BaseController;
|
||||||
|
import com.zheng.common.util.Paginator;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 专题首页控制器
|
||||||
|
* Created by shuzheng on 2017/3/26.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/topic")
|
||||||
|
public class TopicController extends BaseController {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(TopicController.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsTopicService cmsTopicService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
||||||
|
public String list(
|
||||||
|
@RequestParam(required = false, defaultValue = "1", value = "page") int page,
|
||||||
|
HttpServletRequest request,
|
||||||
|
Model model) {
|
||||||
|
// 专题列表
|
||||||
|
int rows = 10;
|
||||||
|
CmsTopicExample cmsTopicExample = new CmsTopicExample();
|
||||||
|
cmsTopicExample.setOffset((page - 1) * rows);
|
||||||
|
cmsTopicExample.setLimit(rows);
|
||||||
|
List<CmsTopic> topics = cmsTopicService.selectByExample(cmsTopicExample);
|
||||||
|
model.addAttribute("topics", topics);
|
||||||
|
// 文章总数
|
||||||
|
long total = cmsTopicService.countByExample(cmsTopicExample);
|
||||||
|
// 分页
|
||||||
|
Paginator paginator = new Paginator(total, page, rows, request);
|
||||||
|
model.addAttribute("paginator", paginator);
|
||||||
|
return thymeleaf("/topic/list");
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "{topicId}", method = RequestMethod.GET)
|
||||||
|
public String index(@PathVariable("topicId") int topicId, Model model) {
|
||||||
|
CmsTopic topic = cmsTopicService.selectByPrimaryKey(topicId);
|
||||||
|
model.addAttribute("topic", topic);
|
||||||
|
return thymeleaf("/topic/index");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.zheng.cms.web.interceptor;
|
||||||
|
|
||||||
|
import com.zheng.cms.dao.model.CmsMenu;
|
||||||
|
import com.zheng.cms.dao.model.CmsMenuExample;
|
||||||
|
import com.zheng.cms.rpc.api.CmsMenuService;
|
||||||
|
import com.zheng.common.util.PropertiesFileUtil;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公共拦截器
|
||||||
|
* Created by shuzheng on 2017/3/25.
|
||||||
|
*/
|
||||||
|
public class CmsWebInterceptor extends HandlerInterceptorAdapter {
|
||||||
|
|
||||||
|
private static Logger _log = LoggerFactory.getLogger(CmsWebInterceptor.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CmsMenuService cmsMenuService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
// 过滤ajax
|
||||||
|
if (null != request.getHeader("X-Requested-With") && request.getHeader("X-Requested-With").equalsIgnoreCase("XMLHttpRequest")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// zheng-ui静态资源配置信息
|
||||||
|
String appName = PropertiesFileUtil.getInstance().get("app.name");
|
||||||
|
String uiPath = PropertiesFileUtil.getInstance().get("zheng-ui.path");
|
||||||
|
request.setAttribute("appName", appName);
|
||||||
|
request.setAttribute("uiPath", uiPath);
|
||||||
|
// 菜单
|
||||||
|
CmsMenuExample cmsMenuExample = new CmsMenuExample();
|
||||||
|
cmsMenuExample.setOrderByClause("orders asc");
|
||||||
|
List<CmsMenu> menus = cmsMenuService.selectByExample(cmsMenuExample);
|
||||||
|
request.setAttribute("menus", menus);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||||
|
super.postHandle(request, response, handler, modelAndView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
|
super.afterCompletion(request, response, handler, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
super.afterConcurrentHandlingStarted(request, response, handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -11,6 +11,15 @@
|
||||||
<!-- 根目录'/'对应页面 -->
|
<!-- 根目录'/'对应页面 -->
|
||||||
<mvc:view-controller path="/" view-name="/index.jsp"/>
|
<mvc:view-controller path="/" view-name="/index.jsp"/>
|
||||||
|
|
||||||
|
<!-- 拦截器 -->
|
||||||
|
<mvc:interceptors>
|
||||||
|
<!-- 公共拦截器 -->
|
||||||
|
<mvc:interceptor>
|
||||||
|
<mvc:mapping path="/**"/>
|
||||||
|
<bean class="com.zheng.cms.web.interceptor.CmsWebInterceptor"></bean>
|
||||||
|
</mvc:interceptor>
|
||||||
|
</mvc:interceptors>
|
||||||
|
|
||||||
<context:property-placeholder location="classpath:config.properties"/>
|
<context:property-placeholder location="classpath:config.properties"/>
|
||||||
|
|
||||||
<!-- 使用thymeleaf视图 -->
|
<!-- 使用thymeleaf视图 -->
|
||||||
|
|
|
@ -1,151 +0,0 @@
|
||||||
<%@ page contentType="text/html; charset=utf-8"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
|
||||||
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
|
|
||||||
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
|
||||||
<c:set var="basePath" value="${pageContext.request.contextPath}"/>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh-CN">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8"/>
|
|
||||||
<title>首页 - ZhengCms</title>
|
|
||||||
<meta name="keywords" content=""/>
|
|
||||||
<meta name="description" content=""/>
|
|
||||||
<meta name="renderer" content="webkit"/>
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
||||||
<link rel="shortcut icon" href="${basePath}/resources/favicon.ico"/>
|
|
||||||
<link rel="stylesheet" href="${basePath}/resources/css/bootstrap.min.css"/>
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="${basePath}/resources/js/vendor/html5shiv.js"></script>
|
|
||||||
<script src="${basePath}/resources/js/vendor/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript">
|
|
||||||
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
|
||||||
</script>
|
|
||||||
<link rel="stylesheet" href="${basePath}/resources/css/main.css"/>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- .navbar -->
|
|
||||||
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
|
||||||
<div class="container">
|
|
||||||
<!-- navbar-header -->
|
|
||||||
<div class="navbar-header">
|
|
||||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
|
||||||
<span class="sr-only">切换菜单</span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<a class="navbar-brand" href="${basePath}/" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
|
||||||
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
|
||||||
</div>
|
|
||||||
<!-- /.navbar-header -->
|
|
||||||
<!-- navbar-collapse -->
|
|
||||||
<div class="collapse navbar-collapse" id="nav-menu">
|
|
||||||
<ul class="nav navbar-nav">
|
|
||||||
<li class="active"><a href="${basePath}/">首页</a>
|
|
||||||
<c:forEach var="menu" items="${menus}">
|
|
||||||
<c:if test="${menu.pid==null}">
|
|
||||||
<li><a href="<c:url value="${menu.url}"/>" target="${menu.target}" class="dropdown-toggle" data-toggle="dropdown">${menu.name}</a>
|
|
||||||
<ul class="dropdown-menu" role="menu">
|
|
||||||
<c:forEach var="subMenu" items="${menus}">
|
|
||||||
<c:if test="${menu.menuId==subMenu.pid}">
|
|
||||||
<li><a href="<c:url value="${subMenu.url}"/>" target="${subMenu.target}">${subMenu.name}</a></li>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</ul>
|
|
||||||
<ul class="nav navbar-right navbar-nav">
|
|
||||||
<li class="dropdown">
|
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<form id="search-form" class="form-inline">
|
|
||||||
<div class="input-group">
|
|
||||||
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
|
||||||
<div class="input-group-btn">
|
|
||||||
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<!--<li><a href="#">登录</a></li>
|
|
||||||
<li><a href="#">注册</a></li>-->
|
|
||||||
<li id="messages" class="dropdown">
|
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
|
||||||
<span class="glyphicon glyphicon-bell"></span>
|
|
||||||
<span class="badge bg-important">5</span>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class="dropdown">
|
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
|
||||||
<span class="glyphicon glyphicon-user"></span>
|
|
||||||
<span class="caret"></span>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<!-- /.navbar-collapse -->
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<!-- /.navbar -->
|
|
||||||
<!-- .container -->
|
|
||||||
<div class="container" style="min-height: 900px;">
|
|
||||||
<dl>
|
|
||||||
<dt>所有类目</dt>
|
|
||||||
<c:forEach var="category" items="${categories}">
|
|
||||||
<dd><a href="${basePath}/category-${category.alias}">${category.name}</a></dd>
|
|
||||||
</c:forEach>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt>所有标签</dt>
|
|
||||||
<c:forEach var="tag" items="${tags}">
|
|
||||||
<dd><a href="${basePath}/tag-${tag.alias}">${tag.name}</a></dd>
|
|
||||||
</c:forEach>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<!-- /.container -->
|
|
||||||
<!-- footer -->
|
|
||||||
<footer class="container-fuild" style="background:#222;padding-top:20px;min-height:100px;">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 hidden-md">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<!-- /footer -->
|
|
||||||
<script src="${basePath}/resources/js/jquery-1.11.2.min.js"></script>
|
|
||||||
<script src="${basePath}/resources/js/bootstrap.min.js"></script>
|
|
||||||
<script src="${basePath}/resources/js/main.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title th:text="${article.title} + ' - ZhengCms'">标题 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<h3 th:text="${article.title}">标题</h3>
|
||||||
|
<div th:utext="${article.content}">内容</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,105 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>博客首页 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
博客首页
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title th:text="${category.name} + ' - ZhengCms'">类目 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<dl>
|
||||||
|
<dt><span th:text="${category.name}">类目</span>文章列表</dt>
|
||||||
|
<dd th:each="article : ${articles}"><a href="../article/index.html" th:href="@{'/article/' + ${article.articleId}}" th:text="${article.title}">文章标题</a></dd>
|
||||||
|
</dl>
|
||||||
|
<div th:utext="${paginator.html}"></div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,8 +0,0 @@
|
||||||
<%@ page contentType="text/html; charset=utf-8"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
|
||||||
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
|
|
||||||
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
|
||||||
<c:set var="basePath" value="${pageContext.request.contextPath}"/>
|
|
||||||
<script>var BASE_PATH = '${basePath}';</script>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<%@ page contentType="text/html; charset=utf-8"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
|
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
|
||||||
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
|
|
||||||
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
|
|
||||||
<c:set var="basePath" value="${pageContext.request.contextPath}"/>
|
|
|
@ -8,16 +8,16 @@
|
||||||
<meta name="renderer" content="webkit"/>
|
<meta name="renderer" content="webkit"/>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<link rel="shortcut icon" href="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/favicon.ico"/>
|
<link rel="shortcut icon" href="favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
<link rel="stylesheet" href="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/css/bootstrap.min.css"/>
|
<link rel="stylesheet" href="css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/js/vendor/html5shiv.js"></script>
|
<script src="js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
<script src="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/js/vendor/respond.min.js"></script>
|
<script src="js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
</script>
|
</script>
|
||||||
<link rel="stylesheet" href="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/css/main.css"/>
|
<link rel="stylesheet" href="css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- .navbar -->
|
<!-- .navbar -->
|
||||||
|
@ -38,20 +38,7 @@
|
||||||
<!-- navbar-collapse -->
|
<!-- navbar-collapse -->
|
||||||
<div class="collapse navbar-collapse" id="nav-menu">
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li class="active"><a href="index.html" th:href="@{/}">首页13</a>
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
<c:forEach var="menu" items="${menus}">
|
|
||||||
<c:if test="${menu.pid==null}">
|
|
||||||
<li><a href="<c:url value="${menu.url}"/>" target="${menu.target}" class="dropdown-toggle" data-toggle="dropdown">${menu.name}</a>
|
|
||||||
<ul class="dropdown-menu" role="menu">
|
|
||||||
<c:forEach var="subMenu" items="${menus}">
|
|
||||||
<c:if test="${menu.menuId==subMenu.pid}">
|
|
||||||
<li><a href="<c:url value="${subMenu.url}"/>" target="${subMenu.target}">${subMenu.name}</a></li>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav navbar-right navbar-nav">
|
<ul class="nav navbar-right navbar-nav">
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
@ -67,16 +54,16 @@
|
||||||
</form>
|
</form>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<!--<li><a href="#">登录</a></li>
|
<li><a href="login.html">登录</a></li>
|
||||||
<li><a href="#">注册</a></li>-->
|
<li><a href="reg.html">注册</a></li>
|
||||||
<li id="messages" class="dropdown">
|
<li id="messages" class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
<span class="glyphicon glyphicon-bell"></span>
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
<span class="badge bg-important">5</span>
|
<span class="badge bg-important">5</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
@ -85,14 +72,14 @@
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
<li><a href="#"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -102,43 +89,36 @@
|
||||||
</nav>
|
</nav>
|
||||||
<!-- /.navbar -->
|
<!-- /.navbar -->
|
||||||
<!-- .container -->
|
<!-- .container -->
|
||||||
<div class="container" style="min-height: 900px;">
|
<div class="container" style="padding-bottom:80px;">
|
||||||
<dl>
|
<dl>
|
||||||
<dt>所有类目</dt>
|
<dt>所有类目</dt>
|
||||||
<c:forEach var="category" items="${categories}">
|
<dd th:each="category : ${categories}"><a href="category/index.html" th:href="@{'/category/' + ${category.alias}}" th:text="${category.name}">类目</a></dd>
|
||||||
<dd><a href="category.html" th:href="@{/}">${category.name}</a></dd>
|
|
||||||
</c:forEach>
|
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>所有标签</dt>
|
<dt>所有标签</dt>
|
||||||
<c:forEach var="tag" items="${tags}">
|
<dd th:each="tag : ${tags}"><a href="tag/index.html" th:href="@{'/tag/' + ${tag.alias}}" th:text="${tag.name}">标签</a></dd>
|
||||||
<dd><a href="${basePath}/tag-${tag.alias}">${tag.name}</a></dd>
|
</dl>
|
||||||
</c:forEach>
|
<dl>
|
||||||
|
<dt>最新5个专题</dt>
|
||||||
|
<dd th:each="topic : ${topics}"><a href="topic/index.html" th:href="@{${topic.url}}" th:text="${topic.title}">专题</a></dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>最新5条文章</dt>
|
||||||
|
<dd th:each="newArticle : ${newArticles}"><a href="article/index.html" th:href="@{'/article/' + ${newArticle.articleId}}" th:text="${newArticle.title}">文章标题</a></dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>最热5个文章</dt>
|
||||||
|
<dd th:each="hotArticle : ${hotArticles}"><a href="article/index.html" th:href="@{'/article/' + ${hotArticle.articleId}}" th:text="${hotArticle.title}">文章标题</a></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
<!-- /.container -->
|
<!-- /.container -->
|
||||||
<!-- footer -->
|
<!-- footer -->
|
||||||
<footer class="container-fuild" style="background:#222;padding-top:20px;min-height:100px;">
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
<div class="container">
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 hidden-md">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
</footer>
|
||||||
<!-- /footer -->
|
<!-- /footer -->
|
||||||
<script src="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/js/jquery-1.11.2.min.js"></script>
|
<script src="js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
<script src="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/js/bootstrap.min.js"></script>
|
<script src="js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
<script src="http://ui.zhangshuzheng.cn:1000/zheng-cms-web/js/main.js"></script>
|
<script src="js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -0,0 +1,105 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>资讯首页 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
资讯首页
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,106 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title th:text="${page.title} + ' - ZhengCms'">标题 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content="关键字" th:content="${page.keywords}"/>
|
||||||
|
<meta name="description" content="描述" th:content="${page.description}"/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<h3 th:text="${page.title}">标题</h3>
|
||||||
|
<div th:utext="${page.content}">内容</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,105 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>问答首页 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
问答首页
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>搜索结果 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<dl>
|
||||||
|
<dt>搜索结果</dt>
|
||||||
|
<dd th:each="article : ${articles}"><a href="../article/index.html" th:href="@{'/article/' + ${article.articleId}}" th:text="${article.title}">文章标题</a></dd>
|
||||||
|
</dl>
|
||||||
|
<div th:utext="${paginator.html}"></div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title th:text="${tag.name} + ' - ZhengCms'">标签 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="../favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="../js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="../css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<dl>
|
||||||
|
<dt><span th:text="${tag.name}">标签</span>文章列表</dt>
|
||||||
|
<dd th:each="article : ${articles}"><a href="../article/index.html" th:href="@{'/article/' + ${article.articleId}}" th:text="${article.title}">文章标题</a></dd>
|
||||||
|
</dl>
|
||||||
|
<div th:utext="${paginator.html}"></div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="../js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="../js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="../js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,106 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title th:text="${topic.title} + ' - ZhengCms'">标题 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<h3 th:text="${topic.title}">标题</h3>
|
||||||
|
<div th:utext="${topic.description}">描述</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<title>专题列表 - ZhengCms</title>
|
||||||
|
<meta name="keywords" content=""/>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="renderer" content="webkit"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<link rel="shortcut icon" href="favicon.ico" th:href="@{${uiPath} + ${appName} + '/favicon.ico'}"/>
|
||||||
|
<link rel="stylesheet" href="css/bootstrap.min.css" th:href="@{${uiPath} + ${appName} + '/css/bootstrap.min.css'}"/>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="js/vendor/html5shiv.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/html5shiv.js'}"></script>
|
||||||
|
<script src="js/vendor/respond.min.js" th:src="@{${uiPath} + ${appName} + '/js/vendor/respond.min.js'}"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
if (/msie [6|7|8]/i.test(navigator.userAgent)) {};
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="css/main.css" th:href="@{${uiPath} + ${appName} + '/css/main.css'}"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- .navbar -->
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top"><!--navbar-inverse-->
|
||||||
|
<div class="container">
|
||||||
|
<!-- navbar-header -->
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu">
|
||||||
|
<span class="sr-only">切换菜单</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="index.html" th:href="@{/}" title="zhengCMS"><span id="logo-text-left">zheng</span><span id="logo-text-right">CMS</span></a>
|
||||||
|
<p class="navbar-text hidden-sm">最简约的内容管理系统</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-header -->
|
||||||
|
<!-- navbar-collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="nav-menu">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li th:each="menu : ${menus}" th:if="${menu.pid} == null"><a th:href="@{${menu.url}}" th:target="${menu.target}" th:text="${menu.name}">菜单</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-right navbar-nav">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-search"></span></a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<form id="search-form" class="form-inline">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="keywords" type="text" name="keywords" class="form-control" placeholder="搜索"/>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="login.html">登录</a></li>
|
||||||
|
<li><a href="reg.html">注册</a></li>
|
||||||
|
<li id="messages" class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-bell"></span>
|
||||||
|
<span class="badge bg-important">5</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/letter.html"><span class="glyphicon glyphicon-envelope"></span> 我的私信(<span class="msg-txt">1</span>)</a></li>
|
||||||
|
<li><a href="home/message.html"><span class="glyphicon glyphicon-volume-up"></span> 系统消息(<span class="msg-txt">4</span>)</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="home/index.html"><span class="glyphicon glyphicon-home"></span> 个人博客</a></li>
|
||||||
|
<li><a href="home/question.html"><span class="glyphicon glyphicon-question-sign"></span> 我的提问</a></li>
|
||||||
|
<li><a href="home/answer.html"><span class="glyphicon glyphicon-ok-sign"></span> 我的回答</a></li>
|
||||||
|
<li><a href="home/collection.html"><span class="glyphicon glyphicon-star"></span> 我的收藏</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="setting/info.html"><span class="glyphicon glyphicon-cog"></span> 修改资料</a></li>
|
||||||
|
<li><a href="setting/password.html"><span class="glyphicon glyphicon-lock"></span> 密码安全</a></li>
|
||||||
|
<li><a href="logout.html"><span class="glyphicon glyphicon-log-out"></span> 安全退出</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- /.navbar -->
|
||||||
|
<!-- .container -->
|
||||||
|
<div class="container" style="padding-bottom:80px;">
|
||||||
|
<dl>
|
||||||
|
<dt>专题列表</dt>
|
||||||
|
<dd th:each="topic : ${topics}"><a href="topic/index.html" th:href="@{'/topic/' + ${topic.topicId}}" th:text="${topic.title}">专题标题</a></dd>
|
||||||
|
</dl>
|
||||||
|
<div th:utext="${paginator.html}"></div>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
<!-- footer -->
|
||||||
|
<footer class="container-fuild text-center" style="position:fixed;bottom:0;width:100%;background:#eee;padding:20px 0;">
|
||||||
|
Copyright © 2017 ZhangShuzheng All Rights Reserved
|
||||||
|
</footer>
|
||||||
|
<!-- /footer -->
|
||||||
|
<script src="js/jquery-1.11.2.min.js" th:src="@{${uiPath} + ${appName} + '/js/jquery-1.11.2.min.js'}"></script>
|
||||||
|
<script src="js/bootstrap.min.js" th:src="@{${uiPath} + ${appName} + '/js/bootstrap.min.js'}"></script>
|
||||||
|
<script src="js/main.js" th:src="@{${uiPath} + ${appName} + '/js/main.js'}"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue