又一个AJAX框架-----不需要JS的AJAX,体验ZKoss

第一个工程终于算开发结束了,爽阿。下一个工程即将开始,换了个AJAX框架,ZKoss,第一次听说,那也没办法。学吧。
据说是不需要写js的AJAX框架。官方网站:
http://www.zkoss.org
下载开发包,开始第一个demo吧!没别的Hello World!
官网上有详细的教程,很简单,就当是简单翻译吧。
http://www.zkoss.org/doc/installzk.dsp

首先在tomcat的webapp下建立个工程,目录结构就不说了吧。
修改web.xml文件,添加如下内容
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">

<!--******添加的内容*******-->
<listener>
    <description>Used to clean up when a session is destroyed</description>
    <display-name>ZK Session Cleaner</display-name>
    <listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
  </listener>

  <servlet>
    <description>ZK loader for ZUML pages</description>
    <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>
  </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>

  <servlet>
    <description>The asynchronous update engine for ZK</description>
    <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>
<!--******添加的内容*******--> 

</web-app>

添加了两个servlet一个listener。然后在将开发包里面,lib文件夹下面的所有jar拷贝到WEB-INF中。接着,创建一个文件,以zul结尾。
<window title="Hello" border="normal">
   Hello World!
</window>

然后像访问一般页面那样访问就搞定了。效果还不错。



在jar包里看到了ext的字样,不知道是不是调用了extjs的包,看样子和extjs效果差不多,不管了,能显示就好。

在ZK里面,一个xml标签表示要创建一个组件。这里是创建一个window组件,设置title和border,是不是很有Swing的味道!接着显示一个内容。内容是一个Label,所以你可以这么写。
<window title="Hello" border="normal">
   <label value="Hello World!"/>
</window>

Hello World就搞定了!

下面看个按钮。很简单,加个按钮标签就行了。
<window title="Hello" border="normal">
   <label value="Hello World!"/>
   <button label="Say Hello" onClick="alert(&quot;Hello World!&quot;);"/>
</window>

从这个代码可以看出,这种标签也是支持类似这种js功能的属性,但是并不是调的js,而是ZK自己的类,org.zkoss.zul.Messagebox.也可以这么写,Messagebox.show(&quot;Hello World!&quot;)。看你喜欢哪种了。
这里的两个@quot ;是不能少的。而且只能用@quot ;,可以修改看看会出现什么错误。

看下效果,也很不错。



这是ZK中文手册上的三个注意
1. 嵌入到 ZUML 页面的脚本可以用不同的语言编写,包括但不限于 Java,
   JavaScript, Ruby and Groovy。此外,它们是运行在服务器上的。
2. 在运行时刻,ZK 使用 BeanShell 解释 Java,所以你可以声明全局函数,例如
   alert。同样 它为大部分的脚本语言提供了一个简单的方式来定义全局函数,
   有时甚至是类。
3. 在 ZUML 页面嵌入脚本语言前,所有 java.lang, java.util,
   org.zkoss.zk.ui, org.zkoss.zk.ui.event 和
   org.zkoss.zul 包中的类都已经被引入。

好了,入门程序搞定了,看demo去。看语法真是枯燥的事情,还是看demo比较舒服 给个ZK中文手册。

你可能感兴趣的:(UI,Ajax,框架,xml,zk)