SiteMesh配置下载使用(简单介绍)

简单介绍

SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。

Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。

官网下载:http://wiki.sitemesh.org/wiki/display/sitemesh3/Home

idea配置使用

第一步:创建一个sitemesh项目,创建完成之后,导入sitemesh包(图中Problems有个1出错,点击)

进行Add添加

第二步:

现在进行配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--定义过滤器--><filter><filter-name>sitemesh</filter-name><filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class></filter><!--定义过滤器拦截URL地址--><filter-mapping><!--过滤器的名称--><filter-name>sitemesh</filter-name><!--过滤器负责拦截的URL--><!-- /* 会把所有的请求拦截下来 --><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

第三步:

在WEB-INF下创建一个名字为decorators.xml文件,里面进行配置

<?xml version="1.0" encoding="UTF-8" ?>
<decorators defaultdir="/lay/"><!--定义不过滤的页面--><!--<excludes>不过滤路径<pattern>/jsp/*</pattern></excludes>--><!-- 定义需要修饰的页面 --><decorator name="book" page="lay_style.jsp"><!-- 定义需要修饰的文件夹--><pattern>/jsp/*</pattern></decorator>
</decorators>

第四步:

创建一个jsp文件进行做样式修饰(注意:必须引入<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>)

<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%--Created by IntelliJ IDEA.User: 邦杠Date: 2018/8/22Time: 12:36To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><%-- 在样式里面定义标题--%><title><sitemesh:title></sitemesh:title></title>
</head>
<body>
<h1>这里是sitemesh页面</h1>
<sitemesh:body></sitemesh:body>
</body>
</html>

再需要修饰的文件(最后放在一个文件夹进行全部修饰)

运行结果

简单案列:

<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%--Created by IntelliJ IDEA.User: 邦杠Date: 2018/8/20Time: 21:14To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1">
<title><sitemesh:title/></title><!--css-->
<%@include file="lay_css.jsp"%>
</head>
<body>
<!--顶部-->
<%@include file="lay_top.jsp"%>
<!--主体-->
<div class="container-fluid"><div class="row"><!--左边菜单栏--><%@include file="lay_left.jsp"%><!--右边主体--><%@include file="lay_body.jsp"%></div>
</div>
<!--js-->
<%@include file="lay_js.jsp"%>
</body>
</html>

View Code

<%@ page import="com.wbg.bookstrop.util.DBUtil" %>
<%@ page import="java.util.Date" %><%--Created by IntelliJ IDEA.User: 邦杠Date: 2018/8/19Time: 13:09To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %><h3 class="page-header">书籍信息</h3>
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="margin: 0px;"><div class="collapse navbar-collapse" id="navbarSupportedContent"><form class="form-inline my-2 my-lg-0"><input class="form-control mr-sm-2" type="search" placeholder="请输入书名" id="bname" name="bname"><button class="btn btn-outline-success my-2 my-sm-0" type="button" onclick="selename()">搜索</button></form></div>
</nav><table class="table table-sm table-bordered "><thead><tr class="table-info"><th scope="col">书名</th><th scope="col">作者</th><th scope="col">价钱</th><th scope="col">出版社</th><th scope="col">类型</th><th scope="col">操作</th></tr></thead><tbody></tbody>
</table><form class="form-horizontal" role="form" action="/book/BooksWebs?action=upda" method="post"><div class="modal fade" id="cx" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="exampleModalLabel">修改信息</h5><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"><div class="form-group"><label for="bid" class="col-sm-1 control-label">编号</label><div class="col-sm-10"><input type="text" class="form-control" id="bid" name="bid" readonly="readonly"placeholder="请输入书编号"></div></div><div class="form-group"><label for="name" class="col-sm-1 control-label">书名</label><div class="col-sm-10"><input type="text" class="form-control" id="name"name="bname"   placeholder="请输入书名称"></div></div><div class="form-group"><label for="bauthor" class="col-sm-1 control-label">作者</label><div class="col-sm-10"><input type="text" class="form-control" id="bauthor"name="bauthor" placeholder="请输入书作者"></div></div><div class="form-group"><label for="bprice" class="col-sm-1 control-label">价格</label><div class="col-sm-10"><input type="text" class="form-control" id="bprice"name="bprice" placeholder="请输入书价格"></div></div><div class="form-group"><label for="bpress" class="col-sm-1 control-label">出版社</label><div class="col-sm-10"><input type="text" class="form-control" id="bpress"name="bpress" placeholder="请输入出版社"></div></div><div class="form-group"><label for="bType" class="col-sm-1 control-label">书籍类型</label><div class="col-sm-10"><select class="form-control" id="bType"name="bType" ><option value="1">融合力</option><option value="2">哲学</option><option value="3">励志</option><option value="4">战争</option></select></div></div></div><div class="modal-footer"><button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button><button type="button"  class="btn btn-primary" onclick="up()">确认修改</button></div></div></div></div>
</form><script>function seleAll() {$.ajax({type:"get",url:"/book/BooksWebajax?action=seleAll",dataType:"json",success:function (data) {$("tr:gt(0)").remove();var tbody=$("tbody");$.each(data.data,function (index,obj) {if(index%2==0)var tr=$("<tr class=\"table-primary\"/>");elsevar tr=$("<tr class=\"table-success\"/>");$("<td/>").html(obj.bname).appendTo(tr);$("<td/>").html(obj.bauthor).appendTo(tr);$("<td/>").html(obj.bprice).appendTo(tr);$("<td/>").html(obj.bpress).appendTo(tr);$("<td/>").html(obj.bType).appendTo(tr);var input1=$("<button type=\"button\"  class=\"btn btn-outline-primary\" data-toggle=\"modal\" data-id="+obj.bid+" data-target=\"#cx\"/>").html("修改");var input2=$("<button type=\"button\" class=\"btn btn-outline-primary\" οnclick=\"dele("+obj.bid+")\"/>").html("删除");$("<td/>").append(input1).append(input2).appendTo(tr);tbody.append(tr);})}})}function up() {$.ajax({type:"post",url:"/book/BooksWebajax?action=upda",data:{bid:$("#bid").val(),bname:$("#name").val(),bauthor:$("#bauthor").val(),bprice:$("#bprice").val(),bpress:$("#bpress").val(),bType:$("#bType").val(),},dataType:"json",success:function (data) {alert(data.msg);if(data.msg=="修改成功"){seleAll();window.location.href="bookajax.jsp";}}})}function dele(id) {if(confirm("是否删除?")){$.ajax({type:"get",url:"/book/BooksWebajax?action=delete",data:{bid:id},dataType:"json",success:function (data) {if(data.msg=="删除成功"){seleAll();}alert(data.msg);}})}}function upda() {$("#cx").on("show.bs.modal",function(e){$.ajax({type:"get",url:"/book/BooksWebajax?action=seleid",data:{bid:event.target.dataset['id']},success:function (data) {$("#bid").val(data.data.bid);$("#name").val(data.data.bname);$("#bauthor").val(data.data.bauthor);$("#bprice").val(data.data.bprice);$("#bpress").val(data.data.bpress);$("#bType").val(data.data.bType);}})})}function selename(){$.ajax({type:"post",url:"/book/BooksWebajax?action=selename",data:{bname:$("#bname").val()},dataType:"json",success:function (data) {if(data.msg=="查询成功"){$("tr:gt(0)").remove();var tbody=$("tbody");$.each(data.data,function (index,obj) {var tr=$("<tr class=\"table-success\"/>");$("<td/>").html(obj.bname).appendTo(tr);$("<td/>").html(obj.bauthor).appendTo(tr);$("<td/>").html(obj.bprice).appendTo(tr);$("<td/>").html(obj.bpress).appendTo(tr);$("<td/>").html(obj.bType).appendTo(tr);var input1=$("<button type=\"button\"  class=\"btn btn-outline-primary\" οnclick=\"upda("+obj.bid+")\"/>").html("修改");var input2=$("<button type=\"button\" class=\"btn btn-outline-primary\" οnclick=\"dele("+obj.bid+")\"/>").html("删除");var input3=$("<button type=\"button\" class=\"btn btn-outline-primary\" οnclick=\"sele("+obj.bid+")\"/>").html("详细");$("<td/>").append(input1).append(input2).append(input3).appendTo(tr);tbody.append(tr);})}elsealert("无数据");}})}window.onload=function (ev) {seleAll();upda();}
</script>

View Code

总结:

在使用sitemesh之前,首先做好样式的jsp,然后直接进行使用即可

项目链接和sitemesh包github下载:https://github.com/weibanggang/SiteMesh

posted @ 2018-08-22 13:19 韦邦杠 阅读(...) 评论(...) 编辑 收藏

SiteMesh配置下载使用(简单介绍)相关推荐

  1. 多通道振弦传感器无线采集仪参数配置工具SETP简单介绍

    多通道振弦传感器无线采集仪参数配置工具SETP简单介绍 VS208/416/432 是以振弦.温度传感信号为主的多通道无线采集仪,并可扩展其它 模拟(电流.电压.电阻)信号和数字信号(RS485.RS ...

  2. jenkins java常用插件下载,Jenkins简单介绍以及插件入门

    Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的"自动化"编译.打包.分发部署,将以前编译.打包.上传.部署到Tomcat中的过程交由Jenkins,Jen ...

  3. Linux jdk配置/下载/安装简单说明

    下载说明文档:判断系统是64位还是32位   我习惯使用rpm安装 1.Linux系统判断64 32位方法 [root@linuxzgf ~]#uname -m 如果有x86_64就是64位的,没有就 ...

  4. R及R Studio下载及简单介绍(界面+R语言)

    今天是第一次写博客,希望自己的博客生涯能从这里开始,也纪念一下我的研究生生活. R语言是干什么的呢?R是用于统计分析.绘图的语言和操作环境,它是一个用于统计计算和统计制图的优秀工具.R软件包含了各种各 ...

  5. java单元测试启动类配置_Springboot 单元测试简单介绍和启动所有测试类的方法

    最近一段时间都是在补之前的技术债,一直忙着写业务代码没有注重代码的质量,leader也在强求,所有要把单元测试搞起来了 我把单元测试分为两种 一个是service的单元测试,一个是controller ...

  6. Iceword v1.20下载及简单介绍

    IceSword是一斩断黑手的利刃.它适用于Windows 2000/XP/2003操作系统,用于查探系统中的幕后黑手(木马后门)并作出处理,当然使用它需要用户有一些操作系统的知识. 在对软件做讲解之 ...

  7. ekho tts 下载_TTS技术简单介绍和Ekho(余音)TTS的安装与编程

    TTS技术简单介绍和Ekho(余音)TTS的安装与编程zouxy09@qq.comhttp://blog.csdn.net/zouxy09 一.TTS技术简单介绍:TTS技术,TTS是Text To ...

  8. ekho tts 下载_TTS技术简单介绍和Ekho(余音)TTS的安装与编程 | 学步园

    一.TTS技术简单介绍: TTS技术,TTS是Text To Speech的缩写,即"从文本到语音".它将计算机自己产生的.或外部输入的文字信息转变为可以听得懂的.流利的汉语口语( ...

  9. Weka简单介绍与最新详细简单安装以及环境变量配置

    一.Weka简单介绍 Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数 ...

  10. Spacevim简单介绍及个人配置总结

    Spacevim简单介绍及个人配置总结 文章目录 Spacevim简单介绍及个人配置总结 1. 前言 2. Spacevim开源地址和入门指南 3. 个人简单的配置总结 1. 修改配置的位置 2. 去 ...

最新文章

  1. python客户端与服务器端通信数据库原理_python网络-HTTP协议(28)
  2. eclipse 切换svn账号
  3. 巧用iptables搞定SYN洪水攻击!
  4. JavaSE(十二)——AWT
  5. [HNOI2003]操作系统
  6. hihocoder1147 时空阵(bfs树+DP)
  7. [渝粤题库]陕西师范大学《幼儿园语言教育》作业
  8. 第3篇:Flowable快速工作流脚手架Jsite_关闭演示模式
  9. ORA-39181: Only partial table data may be exported due to fine grain access control on OE.PURCHAS
  10. 华为鸿蒙商标被驳回复审:易造成混淆
  11. 2021美赛什么时候出成绩?
  12. 【2017百度之星资格赛】1004.度度熊的午饭时光思路及代码
  13. 网站域名服务器怎么备案,网站域名服务器怎么备案
  14. mgg格式怎么转换为mp3_太好用了!批量转换MP3格式了解一下
  15. Rockchip平台TP驱动详解
  16. 洛谷P3435 [POI2006]OKR-Periods of Words题解(KMP)
  17. 使用Websphere的TPTP工具进行性能分析和监控
  18. 互动送书-《MySQL DBA工作笔记》签名版
  19. 关于create-react-app搭建react环境并修改端口号
  20. 5GNR RIV计算

热门文章

  1. 时间序列数据建模分析利器sktime初体验
  2. python实现求解列表中元素的排列和组合问题
  3. python列表用来有序存放一组_Python期末习题练习
  4. Map集合常用方法总结
  5. 西北农林科技大学计算机考研难吗,西北农林科技大学考研难吗?一般要什么水平才可以进入?...
  6. 区块链主流共识算法全面解析
  7. Docker教程小白实操入门(4)--如何停止一个容器
  8. php 删除字符前缀,thinkphp3.2.3如何删除同一前缀的缓存(File)
  9. 结尾匹配_2.nginx的server_name匹配顺序
  10. LeetCode之罗马数字转整数