zk-web应用型框架学习(一)

2024-06-10 23:08
文章标签 学习 web 框架 zk 应用型

本文主要是介绍zk-web应用型框架学习(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

zk是一个可以与java语言进行交互的web应用型框架,使用zk框架,一定程度上免去写javascript代码,而且能够很好的完成界面的交互。
类似于Android应用,它的前端布局也是一系列的控件,并且可以绑定一些事件。

1.eclipse下搭建zk环境

在 help–>install new software中加载插件
链接地址:http://studio.zkoss.org/resource/plugins/eclipse_4_2
见图1.zk-插件下载
下载完插件后,重启eclipse就可以创建zk工程了。也可以创建zk页面(后缀名为*.zul)

2.学习简单的zk界面

2.1 创建工程

以下创建的是maven-web工程,然后web端显示的是*.zul页面。
工程目录
pom.xml文件中要引入zk的jar包(比较多杂,所以直接贴整个文件)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.potix</groupId><artifactId>zkdemo-Load_On_Demand___Grid</artifactId><version>8.0</version><packaging>war</packaging><properties><zk.version>8.0.3.1-Eval</zk.version><zkcharts.version>2.1.1-Eval</zkcharts.version><maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format></properties><repositories><repository><id>zk repository</id><url>http://mavensync.zkoss.org/maven2</url></repository><repository><id>ZK Evaluation</id><url>http://mavensync.zkoss.org/eval</url></repository><repository><id>com.asual.maven.public</id><name>Asual Public Repository</name><url>http://www.asual.com/maven/content/groups/public</url></repository></repositories><dependencies><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.6</version></dependency><!-- CE requirements -->      <dependency><groupId>org.zkoss.zk</groupId><artifactId>zk</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.zk</groupId><artifactId>zhtml</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.zk</groupId><artifactId>zml</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.zk</groupId><artifactId>zul</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.common</groupId><artifactId>zcommon</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.common</groupId><artifactId>zweb</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.common</groupId><artifactId>zel</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.zk</groupId><artifactId>zkbind</artifactId><version>${zk.version}</version></dependency><!-- PE & EE requirements --><dependency><groupId>org.zkoss.zk</groupId><artifactId>zkmax</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.zk</groupId><artifactId>zkplus</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.zk</groupId><artifactId>zkex</artifactId><version>${zk.version}</version></dependency><!-- ZK Charts--><dependency><groupId>org.zkoss.chart</groupId><artifactId>zkcharts</artifactId><version>${zkcharts.version}</version></dependency><!-- ZK Graphics --><dependency><groupId>org.zkoss.graphics</groupId><artifactId>graphics</artifactId><version>0.8.0</version></dependency><!-- ZK JSP --><dependency><groupId>org.zkoss.zk</groupId><artifactId>zuljsp</artifactId><version>2.0</version></dependency><!-- Addons --><dependency><groupId>org.zkoss.addon</groupId><artifactId>flashchart</artifactId><version>1.0</version></dependency><dependency><groupId>org.zkoss.zkforge</groupId><artifactId>gmapsz</artifactId><version>3.0.4</version></dependency><dependency><groupId>org.zkoss.zkforge</groupId><artifactId>ckez</artifactId><version>4.4.6.3</version></dependency><dependency><groupId>org.zkoss.calendar</groupId><artifactId>calendar</artifactId><version>2.1.5</version></dependency><dependency><groupId>org.zkoss.pivot</groupId><artifactId>pivottable</artifactId><version>2.3.0-Eval</version></dependency><!-- Themes --><dependency><groupId>org.zkoss.theme</groupId><artifactId>sapphire</artifactId><version>${zk.version}</version></dependency><dependency><groupId>org.zkoss.theme</groupId><artifactId>silvertail</artifactId><version>${zk.version}</version></dependency><!-- Java servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><!-- commons --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency><dependency><groupId>commons-digester</groupId><artifactId>commons-digester</artifactId><version>2.0</version></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency><!-- Log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.6.4</version></dependency><dependency><groupId>org.apache.geronimo.ext.tomcat</groupId><artifactId>juli</artifactId><version>7.0.23.1</version><scope>test</scope></dependency><!-- Rome --><dependency><groupId>rome</groupId><artifactId>rome</artifactId><version>1.0</version></dependency><!-- Jasperreports --><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>4.0.1</version></dependency><!-- JFreeChart --><dependency><groupId>jfree</groupId><artifactId>jfreechart</artifactId><version>1.0.13</version></dependency><dependency><groupId>jfree</groupId><artifactId>jcommon</artifactId><version>1.0.16</version></dependency><!-- POI --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.7</version></dependency><!-- filters --><dependency><groupId>com.jhlabs</groupId><artifactId>filters</artifactId><version>2.0.235</version></dependency></dependencies></project>

2.2 简单的zk交互界面

inputDemo.zul代码

<zk>
<window>
<div apply="demo.grid.load_on_demand.InputController"><hbox><datebox id="in" onChange="self.value=new Date()" constraint="no empty" format="yyyy/MM/dd"/><button id="getCurrentTime" label="获取时间"></button><textbox id="mTime"></textbox></hbox>
</div>
</window>
</zk>

java代码

public class InputController extends SelectorComposer<Component> {private static final long serialVersionUID = 1L;@Wireprivate Datebox in;@Wireprivate Textbox mTime;@Listen("onClick = #getCurrentTime")public void getTime(){System.out.println("=="+in);Date dateTime = in.getValue();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");mTime.setValue(sdf.format(dateTime));System.out.println("获取时间:"+in.getValue());}}

效果
结果
简单说下我的理解:
zk采用的控件可以绑定java实体类(使用apply=”Demo.java”)。
我们在Demo.java中对zk的控件进行初始化数据。
关于zk的知识还在更新学习中。
zk框架有力的学习文件:https://www.zkoss.org/zkdemo

这篇关于zk-web应用型框架学习(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049525

相关文章

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea