2008年3月11日火曜日

ZK: jdbcManager Seasar変数

DelegatingVariableResolverでZKから直接jdbcManagerが使えるんですね。

emp.zul


<?xml version="1.0" encoding="UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<?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;
emps = jdbcManager.from(Emp.class)
.orderBy("sal")
.getResultList();
</zscript>
<window title="Emplyee list" >
<listbox model="@{emps}">
<listhead>
<listheader label="id"/>
<listheader label="Emp no"/>
<listheader label="Emp name"/>
<listheader label="Hiredate"/>
<listheader label="Sal"/>
<listheader label="Dept id"/>
<listheader label="Version no"/>
</listhead>
<listitem self="@{each=emp}">
<listcell label="@{emp.id}"/>
<listcell label="@{emp.empNo}"/>
<listcell label="@{emp.empName}"/>
<listcell label="@{emp.hiredate}"/>
<listcell label="@{emp.sal}"/>
<listcell label="@{emp.deptId}"/>
<listcell label="@{emp.versionNo}"/>
</listitem>
</listbox>
</window>
</zk>

これは楽ちん!!



java.util.Date および java.util.Calendar 型のプロパティには時制を指定する必要があるそうです。
EmpクラスのhiredateプロパティはDate型なので@Temporalを使い時制にTemporalType.DATEを指定します。

Emp.java

public class Emp {
..
@Temporal(TemporalType.DATE)
@Column(name = "HIREDATE")
public Date hiredate;
..

0 件のコメント: