ZUMLページであるには、Javaコードを埋め込めることができます。そして、以下のようにサーバーでそれらを実行します。
As being a ZUML page, it could embed any Java codes and execute them in the server as follows.
<html xmlns:zk="http://www.zkoss.org/2005/zk"> <head> <title>ZHTML Demo</title> </head> <body> <h1>ZHTML Demo</h1> <ul id="ul"> <li>The first item.</li> <li>The second item.</li> </ul> <input type="button" value="Add Item" zk:onClick="addItem()"/> <br/> <input id="inp0" type="text" zk:onChange="add()"/> + <input id="inp1" type="text" zk:onChange="add()"/> = <text id="out"/>
<zscript>
void addItem() {
Component li = new Raw("li");
li.setParent(ul);
new Text("Item "+ul.getChildren().size()).setParent(li);
}
void add(){
out.setValue(inp0.getValue() + inp1.getValue());
}
</zscript>
</body> </html>
上の例では、ZKネーム空間を使用してonClickプロパティを指定します。XHTML自身で同じ名前のプロパティを持つので、はっきり指定することは必要になります。
こ こで注意してほしいのは、すべてのJavaコードはサーバーで実行されます。HTMLページ中に埋め込むJavaScriptとは違って、直接サーバーの リソースにアクセスできます。例えば、データベースにコネクションを開いたり、コンポーネント中に入れるためのデータを取得したりします。
<zscript> import java.sql.*; void addItem() { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:Fred"; Connection conn = DriverManager.getConnection(url,"myLogin", "myPassword"); ... conn.close(); } </zscript>