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

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用