JSP บริสุทธิ์โดยไม่ต้องผสม HTML โดยการเขียน html เป็นโค้ดที่คล้ายกับ Java

โปรดอ่านก่อนตอบ นี่เป็นเทคนิคการเขียนโปรแกรม แฟนตาซี ที่ฉันฝันถึง ฉันอยากจะรู้ว่าในชีวิตจริงมีอะไรที่ใกล้เคียงกันบ้างไหม

เพจ JSP ต่อไปนี้:

<%
html {
    head {
        title {"Pure fantasy";}
    }
    body {
        h1 {"A heading with double quote (\") character";}
        p {"a paragraph";}
        String s = "a paragraph in string. the date is ";
        p {
            s;
            new Date().toString();
        }
        table (Border.ZERO, new Padding(27)) {
            tr {
                for (int i = 0; i < 10; i++) {
                    td {i;}
                }
            }
        }
    }
}
%>

สามารถสร้างหน้า HTML ต่อไปนี้:

<html>
    <head>
        <title>Pure fantasy</title>
    </head>
    <body>
        <h1>A heading with double quote (") character</h1>
        <p>a paragraph</p>
        <p>a paragraph in string. the date is 11 December 2012</p>
        <table border="0" padding="27">
            <tr>
                <td>0</td>
                <td>1</td>
                <td>2</td>
                <td>3</td>
                <td>4</td>
                <td>5</td>
                <td>6</td>
                <td>7</td>
                <td>8</td>
                <td>9</td>
            </tr>
        </table>
    </body>
</html>

สิ่งที่เกี่ยวกับจินตนาการนี้คือการนำเทคนิคการเขียนโปรแกรม Java แบบเดิมมาใช้ซ้ำ ซึ่งเปิดใช้งานคำหลักที่ปรับแต่งซึ่งใช้ในลักษณะคล้ายกับ if-else-then, while, try-catch ฯลฯ เพื่อแสดงแท็ก html ด้วยวิธีที่ไม่ใช่ html ที่สามารถตรวจสอบความถูกต้องทางวากยสัมพันธ์ได้อย่างง่ายดาย และที่สำคัญที่สุดสามารถผสมกับโค้ด Java ปกติได้อย่างง่ายดายโดยไม่สูญหายไปในทะเล <%, %>, <%=, out.write() ฯลฯ

คุณสมบัติเพิ่มเติมคือสามารถวางสตริงโดยตรงเป็นคำสั่งเพื่อพิมพ์ลงใน HTML ที่สร้างขึ้น ซึ่งเป็นสิ่งที่ Java ไม่รองรับ (ซึ่งต้องกำหนดสตริงแท้ให้กับตัวแปรก่อนใช้งาน)

  • มีอะไรในชีวิตจริงที่เข้ามาใกล้บ้างไหม?
  • ถ้าไม่ เป็นไปได้ไหมที่จะกำหนดคีย์เวิร์ดที่กำหนดเองใน Java หรือ JSP
  • หรือฉันต้องสร้างภาษาการเขียนโปรแกรมใหม่ทั้งหมดเพื่อสิ่งนั้น?
  • คุณพบปัญหาอะไรบ้างกับการตั้งค่าประเภทนี้

ป.ล.: ฉันรู้ว่าคุณสามารถใช้ไลบรารี HTML เพื่อสร้าง HTML โดยใช้โค้ด Java ได้ แต่ปัญหาของไลบรารีดังกล่าวคือ ตัวซอร์สโค้ดเองไม่มีการแสดง HTML ที่อ่านได้เหมือนกับโค้ดด้านบน - ถ้า คุณได้รับสิ่งที่ฉันหมายถึง


person ADTC    schedule 11.12.2012    source แหล่งที่มา
comment
ยินดีด้วย คุณได้สร้างสรรค์ PHP ขึ้นมาใหม่ ไม่มากก็น้อย   -  person Tom G    schedule 11.12.2012
comment
ลองดูที่ - playframework.org/modules/rythm   -  person kv-prajapati    schedule 11.12.2012
comment
ว้าวฉันคาดหวังมาก -1 :) @TomG เดาว่ามันอธิบายความแตกต่างเกี่ยวกับ PHP มาก แต่สิ่งที่ฉันต้องการจริงๆคือการเห็น JSP ขยายเพื่อลบการพึ่งพาการผสม HTML (ไม่ใช่เปลี่ยนเป็น PHP :) ) AVD ขอบคุณ จริงๆ ไม่รู้ว่ามีอะไรอยู่บ้าง รวมถึง Play!, Rythm, Japid หรือ Jamon...   -  person ADTC    schedule 11.12.2012
comment
เอาล่ะ คำถามของคุณไม่สมเหตุสมผลแล้ว คุณบอกว่าคุณไม่ต้องการผสมโค้ดและ HTML แต่นั่นคือสิ่งที่ตัวอย่างของคุณแสดงให้เห็น คุณบอกว่าคุณต้องการวิธีที่สะอาดกว่าในการสร้าง HTML แต่ตัวอย่างของคุณยุ่งพอๆ กับที่คุณอธิบาย วิธีการสร้างเอกสารโดยการแก้ไข DOM เพียงอย่างเดียวนั้นซับซ้อนเกินไปสำหรับคุณ กรุณาชี้แจง.   -  person Brad    schedule 11.12.2012
comment
@Brad บางทีคุณอาจแสดงตัวอย่างสั้น ๆ ให้ฉันดูว่าฉันสามารถสร้างเอกสารโดยการแก้ไข DOM ได้อย่างไรเพราะฉันคิดว่าเราเพิ่งมีความเข้าใจผิดที่นี่ กรุณาโพสต์เป็นคำตอบ   -  person ADTC    schedule 11.12.2012
comment
@ADTC ฉันโพสต์สิ่งนั้นเป็นคำตอบ ... คุณบอกว่าคุณได้ลองแล้วและมันก็ละเอียดเกินไปดังนั้นฉันจึงลบมัน   -  person Brad    schedule 11.12.2012
comment
คุณไม่ได้ให้ตัวอย่างใดๆ เป็นเพียงลิงก์ และสิ่งที่ฉันได้ลองฟังดูไม่เหมือนสิ่งที่คุณกำลังพูดถึง นั่นคือเหตุผลที่ฉันขอบล็อคโค้ดตัวอย่างเพื่อให้เราเคลียร์ความเข้าใจผิดของเราได้   -  person ADTC    schedule 11.12.2012


คำตอบ (2)


มันมาจากโลก Ruby ไม่ใช่ Java แต่ลองดูที่ Haml

person dpassage    schedule 11.12.2012
comment
โอ้พระเจ้า สวยมาก.... :) คงจะดีถ้าคุณขยายคำตอบด้วยตัวอย่างจากหน้าแรกหรืออะไรมากกว่านั้น :) - person ADTC; 11.12.2012
comment
ฉันเชื่อว่ามี การใช้ Java ของ HAML - person Richard JP Le Guen; 11.12.2012

ดูเหมือนว่าคุณกำลังขอเครื่องมือสร้างเทมเพลต HTML ทางเลือก มีตัวเลือกมากมายหากคุณค้นหาใน Google สิ่งที่ดูเหมือนจะเกิดขึ้นค่อนข้างบ่อย (สำหรับ Java) คือ Apache Velocity ตัวอย่างหนึ่งจาก คู่มือผู้ใช้ มีลักษณะดังนี้:

<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
   #if ( $customer.hasPurchased($mud) )
      <tr>
        <td>
          $flogger.getPromo( $mud )
        </td>
      </tr>
   #end
#end
</table>
person SimonC    schedule 11.12.2012