File>New>Other>Chura>Chura Project
Nextボタンを押してCreate a Chura Projectダイアログを表示する
Project name; [zkseasar]
Root Package Name: [zkseasar]
Project Type: Super Agile(Teeda + S2Dao)
Finishボタンを押すとプロジェクトが作成される。
zkseasarプロジェクトを右クリックしメニューを表示する。
「Tomcat プロジェクト>コンテキスト定義を更新」をクリックする。
プロジェクトツリーでzkseasarをクリック
src>main>webapp>WEB-INF>libを選択し右クリックしてメニューを表示する。
ImportをクリックしImport Selectダイアログを表示する。
General>File Systemを選択しNextボタンをクリックしFile systemダイアログを表示する。
From directory: の右にある BrowseボタンをクリックしZKを展開してできたディレクトリのdist/libのjarファイルを選択しコピーする。
今の作業を繰り返しdist/lib/extのjarファイルもコピーする。
データベースにあわせる。
<components>
...
<property name="dialect">h2Dialect</property>
...
プロジェクトツリーでzkseasarをクリック
Referenced Librariesを右クリックしメニューを表示する。
Build Path>Configure Build Path...をクリックしJava Build Pathダイアログを表示する。
LibrariesタグをクリックしAdd External JARS..ボタンをクリックして出てきたダイアログでgeronimo-jpa_3.0_spec-1.0.jarを選択しOKボタンをクリックする。
.....
<include path="s2jdbc.dicon"/>
</components>
....
<component class="org.seasar.framework.convention.impl.PersistenceConventionImpl"/>
</components>
....
<!-- ZK -->
<listener>
<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>zkLoader</servlet-name>
<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
<init-param>
<param-name>update-uri</param-name>
<param-value>/zkau</param-value>
</init-param>
<load-on-startup>1</load-on-startup><!-- Must -->
</servlet>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zul</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zhtml</url-pattern>
</servlet-mapping>
<!-- Optional. Uncomment it if you want to use richlets.
-->
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>/zk/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>auEngine</servlet-name>
<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>auEngine</servlet-name>
<url-pattern>/zkau/*</url-pattern>
</servlet-mapping>
<!-- Miscellaneous -->
<session-config>
<session-timeout>120</session-timeout>
</session-config>
....
アプリケーション作成
package zkseasar.entity;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "EMP")
public class Emp {
@Column(name = "ID")
public Integer id;
@Column(name = "EMP_NO")
public Integer empNo;
@Column(name = "EMP_NAME")
public String empName;
@Column(name = "MGR_ID")
public Integer mgrId;
@Column(name = "HIREDATE")
public Date hiredate;
@Column(name = "SAL")
public BigDecimal sal;
@Column(name = "DEPT_ID")
public Integer deptId;
@Column(name = "VERSION_NO")
public Integer versionNo;
}
package zkseasar.service;
import java.util.List;
import org.seasar.extension.jdbc.JdbcManager;
import zkseasar.entity.Emp;
public class EmpService {
public JdbcManager jdbcManager;
public List<Emp> selectAll() {
return jdbcManager.from(Emp.class).getResultList();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.seasar.DelegatingVariableResolver"?>
<zk xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd ">
<zscript >
import zkseasar.entity.Emp;
public class MyRowRenderer implements RowRenderer {
public void render(Row row, Object data) {
new Intbox(((Emp)data).id).setParent(row);
new Intbox(((Emp)data).empNo).setParent(row);
new Textbox(((Emp)data).empName).setParent(row);
// new Intbox(((Emp)data).mgrId).setParent(row);
new Datebox(((Emp)data).hiredate).setParent(row);
new Decimalbox(((Emp)data).sal).setParent(row);
new Intbox(((Emp)data).deptId).setParent(row);
new Intbox(((Emp)data).versionNo).setParent(row);
}
}
emps = empService.selectAll();
model = new SimpleListModel(emps.toArray());
rowRenderer = new MyRowRenderer();
</zscript>
<window title="Emplyee list" >
<grid model="${model}" rowRenderer="${rowRenderer}">
<columns>
<column label="id"/>
<column label="Emp no"/>
<column label="Emp name"/>
<column label="Hiredate"/>
<column label="Sal"/>
<column label="Dept id"/>
<column label="Version no"/>
</columns>
</grid>
</window>
</zk>
まだDBを起動していないときはDoltengと一緒にインストールしたDatabaseViewから起動する。
Window>Show View>Other>Dolteng>DatabaseViewをクリックしビューを表示。
ビューの中のzkseasarをクリックして表示されるjdbc.diconをクリックするとDBが起動する。
Ellipse>Tomcat>Tomcat起動をクリックしTomcatを起動する。
Webブラウザでhttp://localhost:8080/zkseasar/view/emp.zulを表示する。
Seasarコンポーネントの変数もapp.diconからs2jdbc.dicon経由で自動的に設定されるようです、いいですね!
0 件のコメント:
コメントを投稿