最基础的spring+springMVC项目搭建及sitemesh标签
PS:好多人刚上手ssm及maven时一直会问基础配置,以下可做参考,对比下springBoot一个优势就出来了。
1.pom.xml文件
[maven库] https://mvnrepository.com/
2.Maven
个人建议在创建Mavenxiang项目时勾选创建简单的空白项目,如图
其他jdbc配置与部分xml配置不在这里显示,若项目需要用到文件上传,在pom.xml已引用对应包后,可做以下配置,仅做参考:
<!-- 定义文件上传解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设定默认编码 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设定文件上传的最大值10MB,10*1024*1024 -->
<property name="maxUploadSize" value="10485760"></property>
</bean>
3.sitemesh标签的使用
SiteMesh是基于Servlet的filter的,即过滤流。它是通过截取response,并进行装饰后再交付给客户。
其中涉及到两个名词: 装饰页面(decorator page)和 被装饰页面(Content page), 即 SiteMesh通过对Content Page的装饰,最终得到页面布局和外观一致的页面,并返回给客户。
配置可共用jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<c:set var="static_version" value="${1041}"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title><sitemesh:title/></title>
<link rel="stylesheet" type="text/css" href="${ctx}/lib/font-awesome/css/font-awesome.min.css?${static_version}"/>
<script type="text/javascript" src="${ctx}/lib/jquery/jquery1x.min.js?${static_version}"></script>
<sitemesh:head/>
</head>
<body>
<sitemesh:body/>
</body>
</html>
web.xml配置
<filter>
<filter-name>sitemesh</filter-name>
<!--<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>-->
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置xml(可Java形式配置,自行百度)
<?xml version="1.0" encoding="utf-8"?>
<decorators defaultdir="/WEB-INF/layout">
<!-- 此处用来定义不需要过滤的页面 -->
<excludes>
<pattern>/static/*</pattern>
<pattern>*.part</pattern>
<pattern>*.part?*</pattern>
<pattern>*.json</pattern>
<pattern>*.json?*</pattern>
</excludes>
<!-- 用来定义装饰器要过滤的页面 -->
<decorator name="mb" page="layout_2.jsp">
<pattern>/hello</pattern>
</decorator>
<decorator name="site" page="layout.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
附文件包: