我使用自定义标签来创建某种母版页(模板)。 施工如下:
// 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>
失败了
脚本元素(&lt;%!,&lt; jsp:declaration,&lt;%=, 此处不允许使用&lt; jsp:expression,&lt;%,&lt; jsp:scriptlet。
例外
我该如何实施这样的解决方案?谢谢
答案 0 :(得分:3)
一个疯狂的建议: - )
使用usebean在请求范围中生成新的Date对象。然后,每个请求都将导致创建一个新的Date对象。这将在整个请求中重复使用。
<jsp:useBean id="uniqueDate" class="java.util.Date" scope="request"/>
然后在日期对象上调用getTime()方法(如注释中所示)。
${uniqueDate.time}