将引导程序模板添加到jsp

时间:2016-08-09 19:47:38

标签: twitter-bootstrap jsp spring-mvc

我想在我的webapp中添加一个免费的布局模板,但出了点问题。

Project structure

这是我的index.jsp文件的负责人:

<head>
  <title>Bicycleshop Bootstarp Website Template | Home :: w3layouts</title>
  <link href="WEB-INF/template/css/bootstrap.css" rel='stylesheet' type='text/css' />
  <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  <script src="/WEB-INF/template/js/jquery-1.11.0.min.js"></script>
  <!-- Custom Theme files -->
  <link href="/WEB-INF/template/css/style.css" rel='stylesheet' type='text/css' />
  <!-- Custom Theme files -->
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
  <!-- Google Fonts -->
  <link href='http://fonts.googleapis.com/css?family=Doppio+One' rel='stylesheet' type='text/css'>
  <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:400,300,700' rel='stylesheet' type='text/css'>
  <link href='http://fonts.googleapis.com/css?family=Oswald:400,700' rel='stylesheet' type='text/css'>
</head>

我在dispatcher-servlet.xml中包含了这一行:

<mvc:resources mapping="/template/**" location="/WEB-INF/"/>

模板位于目录/ WEB-INF / template /

3 个答案:

答案 0 :(得分:2)

事实证明我添加了错误的位置路径。这个适合我的结构:

<mvc:resources mapping="/template/**" location="/WEB-INF/template/"/>

现在它运作得很好。

答案 1 :(得分:0)

通常,您不能在WEB-INF或WEB-INF的子目录中拥有静态资源。应用服务器不提供此目录。这是一种保护区。如果您添加某种(代码)代理服务器,您可以提供数据,例如当Servlet默认显示为存储在WEB-INF内的JSP时。

你的意思

<mvc:resources mapping="/template/**" location="/WEB-INF/"/>:

所有匹配/template/**的网址都是从/WEB-INF提供的,因此,您在JSP中指定的网址(从/WEB-INF/template开始)将在{{1}内部查看所以从JSP中的所有URL中删除/WEB-INF/WEB-INF

然后让Spring代理你的资源,你需要像这样使用JSTL或Spring Taglib或/WEB-INF

pageContext

或者:

<link href="<c:url value="/template/css/style.css" />" rel="stylesheet" type="text/css" />

修改

完整的源代码:

的web.xml

<link href="${pageContext.request.contextPath}/template/css/style.css" />" rel="stylesheet" type="text/css" />

MVC-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <servlet>
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

Welcome.java

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="demo.spring.mvc" />

    <mvc:annotation-driven />

    <mvc:resources mapping="/resources/**" location="/WEB-INF/static/" />

    <mvc:view-resolvers>
        <mvc:jsp prefix="/WEB-INF/views/" suffix=".jsp" />
    </mvc:view-resolvers>

</beans>

/WEB-INF/views/Welcome.jsp

package demo.spring.mvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Welcome {

    @RequestMapping("/welcome")
    public String welcome() {
        return "Welcome";
    }

}

/WEB-INF/static/css/default.css

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <link href="<c:url value="/resources/css/default.css" />" rel="stylesheet" />
    </head>
    <body>
        <h1 class="alert">This should appear in red!</h1>
    </body>
</html>

答案 2 :(得分:0)

您的引用似乎不完整,因为您有CSS文件(引导程序,但不是主题)并且缺少Bootstrap JS文件。

另外,尝试从CDN加载。 https://www.bootstrapcdn.com/