我们的Java / JSP应用程序有一个"以下是您同意的条款和条件"页。我刚刚交付了将协议文本(实际上是整个JSP页面)与用户记录保存在一起的要求。目前它作为静态文本嵌入在JSP页面中,如下所示:
<div>
<h2>General Terms & Conditions</h2>
<div >
<p>You agree to sell your soul and work for free. Also, you agree to wash all our cars by hand twice a week.</p>
</div>
</div>
起初我认为将此文本拉入属性文件可能会更好,这样我就可以从应用中的多个位置访问它:
<div>
<h2>General Terms & Conditions</h2>
<div >
<p><fmt:message key='termsAndConditions.youAreDoomed'/></p>
</div>
</div>
但即便如此,也没有给我我需要的东西,这基本上就是整个文字作为字符串。
我想到的另一个选择是将整个HTML或文本协议从外部文件读入JSP页面 - 这也可以让我访问我的Java代码中的预格式化文本。但似乎这将是一种痛苦。
有更好的方法吗?有没有办法将整个渲染页面的HTML或文本抓取到String中,所以我可以将它保存在记录中?我试图做尽可能少的重构,因为这个应用程序需要尽快上线。#34;
答案 0 :(得分:1)
将整个HTML或文本协议读入JSP页面并将其存储在变量中:
<c:import url="/termsAndConditions.html" var="agreement" />
输出:
<c:out value="${agreement}" />
直接输出而不存储:
<c:import url="/termsAndConditions.html" />
从scriptlet访问变量:
<c:import url="/termsAndConditions.html" var="agreement" />
<%
String termsAndConditions = (String) pageContext.getAttribute("agreement");
%>
声明变量的范围(默认为page
范围):
<c:import url="/termsAndConditions.html" var="agreement" scope="application" />
要在JSP页面的开头使用核心JSTL库添加:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>