1

我使用自定义标签来创建某种母版页(模板)。施工情况如下:

// Template
<%@ tag description="master" pageEncoding="UTF-8"%>
<%@ attribute name="js" fragment="true" %>
<!doctype html>
<html>
<head>
    <jsp:invoke fragment="js" />
</head>
<body>
</html>

// Page
<%@ page pageEncoding="UTF-8"%>   
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %> 
<t:master>
    <jsp:attribute name="js">
        <script type="text/javascript" src="<spring:url value="/javascript/administration/customers.js" />"></script>
    </jsp:attribute>
</t:master>

在我尝试使用通用解决方案通过在 js 文件名的末尾添加随机字符串来禁用浏览器端的 javascript 缓存之前,它工作正常:

<script type="text/javascript" src="<spring:url value="/javascript/administration/customers.js" />?<%= new java.util.Date().getTime() %>"></script>

它失败了

此处不允许使用脚本元素(<%!、<jsp:declaration、<%=、<jsp:expression、<%、<jsp:scriptlet)。

例外

我该如何实施这样的解决方案?谢谢

4

1 回答 1

3

一个疯狂的建议:-)

使用 usebean 在请求范围内生成一个新的 Date 对象。然后,每个请求都会导致创建一个新的 Date 对象。这将在整个请求中重用。

 <jsp:useBean id="uniqueDate" class="java.util.Date" scope="request"/>  

然后在日期对象上调用 getTime() 方法(如评论中所建议)。

${uniqueDate.time}
于 2013-05-28T14:37:57.140 回答