0

在后台的Java类中如何读取zul页面中定义的元素?

asked 2009-10-15 13:48:09 +0800

snakezou gravatar image snakezou
33

刚开始用ZK,写了一个简单的登录页面,文件名为login.zul,内容如下:
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window border="none" height="152px" use="com.together.soft.window.WinLogin">
<zscript><![CDATA[
Constraint ctt = new Constraint() {
public void validate(Component comp, Object value) throws WrongValueException {
String compStr = (String)value;
if (value == null || (!compStr.equals(cpa.value)))
throw new WrongValueException(comp, "验证码输入错误!");
}
}
]]></zscript>
<hbox>
<label value="用户名称:" /><textbox id="userName" />
</hbox>
<hbox>
<label value="用户密码:" /><textbox id="password" type="password"/>
</hbox>
<hbox>
<label value=" 验证码:" />
<vbox>
<textbox id="verifyCode" constraint="${ctt}"/>
<captcha id="cpa" length="6" width="150px" height="50px"/>
</vbox>
</hbox>
<hbox> 
<button label="登录" forward="onOK"/>
<button label="换图片 " onClick="cpa.randomValue();" />
</hbox>
</window>
</zk>

我想在Java类WinLogin中对用户输入的用户名称和密码进行校验,WinLogin的内容如下:
package com.together.soft.window;

import org.zkoss.zk.ui.Executions;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

/**
* 处理登录相关的请求
*/
public class WinLogin extends Window {

/**
* 序列化键值
*/
private static final long serialVersionUID = 1L;

/**
* 处理登录请求
*/
public void onOK() {
//内容校验
System.out.println("userName:" + userName);
Executions.sendRedirect("index.zul");
}
}

但是在内容校验处不知道该如何读取文件login.zul中的内容,如读取元素<textbox id="userName" />中的内容,代码该如何写?

我看网上有例子用实现Composer的方式来读取,在其中声明一个同名的textbox,能够不声明而直接读取吗?就像以前使用request.getParamter("userName")类型的方式?

delete flag offensive retag edit

1 Reply

Sort by » oldest newest

answered 2009-10-16 00:36:37 +0800

adam4891288 gravatar image adam4891288
657 1 5

建议参阅该篇http://www.zkoss.org/smalltalks/mvc3/
使用该篇后面提到的继承GenericForwardComposer类这种方式
这样只要你的java类的变量与类型名称跟zul中的组件ID与类型相同就会自动关联。

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2009-10-15 13:48:09 +0800

Seen: 410 times

Last updated: Oct 16 '09

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More