发表于: 2018-02-27 22:23:33

1 716


今天完成的事情:


1,解决昨天遇到的tiles框架问题,实现demo

2,将之前t11和t10两个页面转成tiles项目。

3,将项目发布到了服务器上。



1,tiles框架问题
    1.1 少了两个jar包,网页上报错信息如下:
nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
少了的jar包是:
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.2</version>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>
    1.2 加上这两个jar包之后,仍然报错,报错信息:
ServletException including path '/WEB-INF/jsp/classic.jsp'.
classic.jsp这个是tiles的网页框架,在这个文件中我多写了一行:
<tiles:insertDefinition name="classic" />
这一行是我在tiles官网的教程中添加的,教程中说这一句是为了 by using the <tiles:insertDefinition /> tag, inserting it in a JSP page:
是为了渲染JSP网页,但是对照其他师兄的tiles框架代码,并没有发现这一句,删掉这一句之后,tiles框架的网页就可以正常访问了。
tiles框架的demo用了两天了,先把这个问题放一放,以后来解决吧。
最后实现结果:
    1.3 实现tiles框架的过程:
配置依赖:
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-expression</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.apache.tiles</groupId>
  <artifactId>tiles-extras</artifactId>
  <version>3.0.8</version>
</dependency>
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.2</version>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>
Spring MVC.xml配置文件增加一项tiles视图解析器,并将SpringMVC视图解析器删掉:
<!-- 配置tiles视图解析器 -->
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass">
        <value>org.springframework.web.servlet.view.tiles3.TilesView</value>
    </property>
</bean>
<!-- 引入tiles配置文件 -->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer" >
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles.xml</value>
        </list>
    </property>
</bean>
web.xml配置文件中增加:
<listener>
</listener>
<servlet>
  <servlet-name>Tiles Dispatch Servlet</servlet-name>
  <servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Tiles Dispatch Servlet</servlet-name>
  <url-pattern>*.tiles</url-pattern>
</servlet-mapping>
在WEB-INF文件夹下新建一个tiles.xml配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
        "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
<tiles-definitions>
    <definition name="classic" template="/WEB-INF/jsp/classic.jsp">
        <put-attribute name="title" value="Tiles tutorial homepage" />
        <put-attribute name="header" value="/WEB-INF/jsp/banner.jsp" />
        <put-attribute name="menu" value="/WEB-INF/jsp/common_menu.jsp" />
        <put-attribute name="body" value="/WEB-INF/jsp/home_body.jsp" />
        <put-attribute name="footer" value="/WEB-INF/jsp/credits.jsp" />
    </definition>
</tiles-definitions>
项目结构:



2, 将两个静态页面做成tiles框架:
首页:firstPage.jsp
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ 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>首页</title>
    <link href="${pageContext.request.contextPath}/t10/bootstrap.min.css" rel="stylesheet" type="text/css">
    <link href="../bootstrap-3.3.5-dist/css/bootstrap.css">
    <link href="${pageContext.request.contextPath}/t10/Untitled-3.css" rel="stylesheet" type="text/css">
    <link href="${pageContext.request.contextPath}/t10/Untitled-1base.css" rel="stylesheet" type="text/css">
</head>
<header>
    <tiles:insertAttribute name="header" />
</header>
<body>
<tiles:insertAttribute name="body" />
</body>
<footer>
    <tiles:insertAttribute name="footer" />
</footer>
</html>
    按照tiles框架demo的格式将两个动态页面做成tiles框架的形式。能成功显示出来。
    出现了一些问题,有一些效果没有出来。明天继续。


遇到的问题:

tiles框架的配置问题。

页面格式在tiles框架下有些无法显示。


明天计划:

将项目放到服务器上,总结任务四。



返回列表 返回列表
评论

    分享到