【问题标题】:How can we reuse JSP chunk defined within JSP Page; without creating another JSP file?我们如何重用 JSP 页面中定义的 JSP 块;不创建另一个 JSP 文件?
【发布时间】:2016-01-07 09:22:14
【问题描述】:

我在 JSP 的不同位置有 14 段代码,这些代码在 JSP 的 14 个位置重复:

<div>
 <table>
    <tbody>
        <tr>
            <td><spring:message code="economy"/></td>
            <td>${spm}</td>
       </tr>
       <tr>
            <td><spring:message code="nok"/></td>
            <td>${spm.nok}</td>
       </tr>
    </tbody>
 </table>
</div>

要求在一处定义上述块并重复使用 14 次。

我知道我可以创建它的 .JSPF 并使用

但我们希望避免这种情况,因为我也必须对其他块应用相同的内容,并且我被告知不要制作太多文件。

那么有没有办法在页面内定义 JSP 块(在页眉或页脚或 HTML 元素中的某处)并在加载时在多个位置重用?请问有什么不清楚的地方

更新: 请在回答时考虑以下内容:

<c:forEach varStatus="loop" items="${economy}" var="spm"> 
  //Code Chunk spm.nok
</c:forEach>

<c:forEach varStatus="loop" items="${economy1}" var="spm"> 
 //Code Chunk spm.nok
</c:forEach>

【问题讨论】:

  • 您可以使用自定义标签。

标签: java html jsp


【解决方案1】:

您的需求非常典型但很有趣,理想的方法是使用可重用代码制作 JSP/JSPF 并包含它,就像您所说的那样。

我建议与您的人讨论并考虑使用JSP Templates 或其他一些模板机制,但考虑到您的要求,我认为您最好的选择是:

<!DOCTYPE html>
<html>
<head>
    <script lang="javascript">
        var reusableHtml = "<div>  <table border='1'>    <tbody>        <tr>            <td>0</td>            <td>${spm}</td>       </tr>       <tr>            <td>A</td>            <td>B</td>       </tr>    </tbody> </table></div>";

        function pushReusbalecode(){
            alert('1');
            document.getElementById("demo1").innerHTML = reusableHtml;
            document.getElementById("demo2").innerHTML = reusableHtml;
        }

    </script> 
</head>
<body onload="pushReusbalecode()">

<div id="demo1"></div>

<br>##########################<br>

<div id="demo2"></div>

<br>##########################<br>

</body>        



</html>

【讨论】:

  • 试试看?它回答了你的问题吗?我认为鉴于您的要求并且不使用任何模板解决方案,这可能是最好的选择。
【解决方案2】:

您可以在不显示任何内容的索引页面上添加此数据,也可以在您想要复制该 div 并使用 jQuery 或 JavaScript 粘贴时添加。

【讨论】:

  • 谢谢。但是,如果在多个对象的每个 JSP 中使用 sn-p 但其中的代码相同,该怎么办: 代码块 :forEach>
  • 编写一个包含动态表数据的 javascript 函数,每次只将对象传递给该方法,该方法将返回整个 div 内容并将其粘贴到您想要的任何位置。
  • 更新了相关场景。如果我在 div 中写入数据,则显示无。然后其中的对象将不会按预期更新。 JSP 首先加载,无法检测到它是什么对象。
猜你喜欢
  • 2014-06-24
  • 1970-01-01
  • 2012-01-30
  • 2013-02-18
  • 1970-01-01
  • 2021-06-15
  • 2018-03-15
  • 2018-12-20
  • 2013-12-13
相关资源
最近更新 更多