Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何重用JSP页面中定义的JSP块;不创建另一个JSP文件?

我在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并使用<;%再次包含它包括

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

那么,有没有办法在页面内部(页眉、页脚或HTML元素中的某个位置)定义JSP块,并在加载时在多个位置重用?如果有任何疑问,请询问

更新: 请同时回答以下问题:

<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>

共 (2) 个答案

  1. # 1 楼答案

    您的需求非常典型,但很有趣,理想的方法是使用可重用代码制作一个JSP/JSPF,并将其包括在内,如您所说

    我建议与你的家人讨论,考虑使用{a1}或其他模板机制,但是考虑到你的要求,我认为你最好的选择是:

    <!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. # 2 楼答案

    您可以在索引页上添加这些数据,显示无,并且可以在任何时候使用jQuery或javasscript复制该div并粘贴