Home   Single Page

サーバー中心構造の対話能力

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>