Чистый 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?
  • Или мне нужно создать для этого совершенно новый язык программирования?
  • Какие проблемы вы видите с такой настройкой?

PS: я знаю, что вы можете использовать библиотеки 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
OMG, это красиво.... :) Было бы неплохо, если бы вы дополнили свой ответ примером с домашней страницы или чем-то еще :) - person ADTC; 11.12.2012
comment
Я считаю, что существует Java-реализация HAML. - person Richard JP Le Guen; 11.12.2012

Похоже, вы в основном просите альтернативный механизм шаблонов HTML. Вариантов много, если погуглить. Тот, который появляется довольно часто (для 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