01 使用sitemesh完成页面中的“AOP”

所谓页面的“AOP”是指在页面中导入一些js和css依赖时不必显式导入。本节将阐述一个有趣的技术sitemesh,它可以完成页面当中的“AOP”。

1、操作步骤

  • 创建一个maven的web工程
    https://www.jianshu.com/p/042073b7710b
  • 加入以下依赖
        <dependency>
            <groupId>org.sitemesh</groupId>
            <artifactId>sitemesh</artifactId>
            <version>3.0.1</version>
        </dependency>
  • 在项目/src/main/webapp/文件夹下引入jquery-1.10.2.js或者其他js
  • 在项目/src/main/webapp/sitemesh文件夹下创建index.jsp
<html>
<head>
    <script type="text/javascript">
        $(function () {
            alert("sitemesh起作用了")
        })
    </script>
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
  • 在项目/src/main/webapp/sitemesh文件夹下创建head.jsp
<script type="text/javascript" src="/jquery-1.10.2.js"></script>
  • 在项目/src/main/webapp/sitemesh文件夹下创建decorator.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title><sitemesh:write property="title"/></title>
    <style type="text/css">
        body {
            font-size: 12px;
        }
    </style>
    <sitemesh:write property="head"/>
    <jsp:include page="/sitemesh/head.jsp"/>
</head>
<body>
</body>
</html>
  • 修改项目/src/main/webapp/WEB-INF/web.xml
  <filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>org.sitemesh.config.ConfigurableSiteMeshFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/sitemesh/*</url-pattern>
  </filter-mapping>
  • 在/src/main/webapp/WEB-INF添加sitemesh3.xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemesh>
    <mapping path="/sitemesh/*" decorator="/sitemesh/decorator.jsp"/>
</sitemesh>
  • 测试
    启动项目,访问index.jsp,会看到弹出“sitemesh起作用了”。
    以上就是使用sitemesh完成页面中的“AOP”。
上一篇:SpringBoot访问不到webapp下的内容


下一篇:[转] Java程序员学C#基本语法两个小时搞定(对比学习)