【问题标题】:Pure JSP without mixing HTML, by writing html as Java-like code纯 JSP 不混合 HTML,将 html 编写为类似 Java 的代码
【发布时间】:2012-12-11 04:24:42
【问题描述】:

请在回答前阅读。这是我梦寐以求的幻想编程技术。我想知道现实生活中是否有什么接近的东西。

以下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-thenwhiletry-catch 等的方式使用自定义关键字,以非 html 方式表示 html 标签可以很容易地检查语法正确性,并且最重要的是可以很容易地与常规 Java 代码混淆,而不会迷失在&lt;%%&gt;&lt;%=out.write() 的海洋中等。

一个附加功能是字符串可以直接作为命令放置在生成的 HTML 中,这是 Java 不支持的(纯字符串必须在使用前分配给变量)。

  • 现实生活中有什么可以接近的吗?
  • 如果没有,是否可以在 Java 或 JSP 中定义自定义关键字?
  • 还是我必须为此创建一种全新的编程语言?
  • 您认为这种设置有什么问题?

PS:我知道你可以使用 HTML 库来使用 Java 代码构造 HTML,但是这些库的问题是,源代码本身没有像上面的代码那样具有可读的 HTML 表示确实 - 如果你明白我的意思。

【问题讨论】:

  • 恭喜,您或多或少地重新发明了 PHP。
  • 哇,我期待很多 -1 :) @TomG 猜测这解释了 PHP 的不同之处,但我真正想要的是看到 JSP 扩展以消除对混合 HTML 的依赖(而不是切换到PHP :) )。 AVD,谢谢,真的不知道有什么东西,包括 Play!、Rythm、Japid 或 Jamon...
  • 好吧,现在你的问题没有意义了。您说您不想混合代码和 HTML,但这正是您的示例所显示的。您说您想要一种更简洁的方式来创建 HTML,但是您的示例与您所描述的一样混乱。通过编辑 DOM 创建文档的纯粹方式对您来说太冗长了。请澄清。
  • @Brad 也许您可以向我展示一个简短的示例,说明如何“通过编辑 DOM 创建文档”,因为我认为我们在这里只是有一个误解。请张贴作为答案。

标签: java html jsp


【解决方案1】:

它来自 Ruby 世界,而不是 Java,但请查看 Haml

【讨论】:

【解决方案2】:

听起来您基本上是在寻求替代的 HTML 模板引擎。如果你用谷歌搜索的话,有很多选择。似乎经常出现的一个(对于Java)是Apache Velocityuser guide 中的一个示例如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-05
    • 2011-05-24
    • 1970-01-01
    • 2018-07-04
    • 2020-01-11
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多