更容易将静态HTML保存到数据库字段,还是从文件中读取静态HTML?

时间:2014-07-02 21:03:33

标签: java html jsp

我们的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;

1 个答案:

答案 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" %>