2017-04-04 66 views
0

我使用标记将我的应用程序的正文插入到应用程序的全局布局中。我试图在.jsp文件中声明新的css/js文件(特定于应用程序),以标记(不确定是否清楚,但代码应该澄清)将变量从jsp文件传递到标记

这是我的wrapper.tag文件(有点简化):

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@tag description="Wrapper Tag" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Title of the page</title> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <meta name="robots" content="noindex,nofollow" /> 

    <!-- Bootstrap --> 
    <!-- Latest compiled and minified CSS --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

    <!-- Custom styles --> 
    <spring:url value="/resources/core/css/style.css" var="coreCss" /> 
    <link href="${coreCss}" rel="stylesheet" /> 

    <!-- jQuery --> 
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script> 
    <!-- Bootstrap --> 
    <!-- Latest compiled and minified JavaScript --> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 

    <!-- Custom scripts --> 
    <spring:url value="/resources/core/js/script.js" var="coreJs" /> 
    <script src="${coreJs}"></script> 
</head> 
<body> 
    <div class="content"> 
     <div class="app-content"> 
      <jsp:doBody/> 
     </div> 
    </div> 
</body> 
</html> 

下面是使用该标记一个jsp文件的例子:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> 

<t:wrapper> 
    <div class="container"> 
     <form class="form-signin"> 
      <h2 class="form-signin-heading">Please sign in</h2> 
      <label for="inputEmail" class="sr-only">Email address</label> 
      <input type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus> 

      <label for="inputPassword" class="sr-only">Password</label> 
      <input type="password" id="inputPassword" class="form-control" placeholder="Password" required> 

      <div class="checkbox"> 
       <label> 
        <input type="checkbox" value="remember-me"> Remember me 
       </label> 
      </div> 

      <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
     </form> 
    </div> 
</t:wrapper> 

我想在jsp文件变量声明中插入新的CSS/JS文件加载到包装标签的<head>中。

回答

0

我找到了一种方法,下面介绍如何实现这一点。

只是传递一个属性在JSP文件中的代码调用:

<spring:url value="/resources/user/css/login.css" var="loginCss" /> 

<t:wrapper css="${loginCss}"> 

,并添加包装标签的<head>

<%@ attribute name="css" %> 
<c:if test="${!empty css}" > 
    <link href="${css}" rel="stylesheet" /> 
</c:if> 

同为JS。