x档案结局:[Apache Click快速开发]Click的组件(一)
来源:百度文库 编辑:偶看新闻 时间:2024/05/05 05:41:24
[Apache Click快速开发]Click的组件(一)
分类: Java 2011-09-23 18:28 288人阅读 评论(4) 收藏 举报Click的组件很多,功能强大,能满足绝大多数开发情况。
您还可以书写自定义组件,当然这会花费您更多的时间,由您决定。 我们首先看一下Click自带的组件。
我试图用一个表单来尝试显示出平常我们使用的html元素,但是发现它远不止这些,比如还有html中没有的Menu,PickList,EmialField,TablePaginator等等。
HelloPage.java
view plaincopy to clipboard?
- package com.apc.pages;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.click.control.ActionLink;
- import org.apache.click.control.FileField;
- import org.apache.click.control.Form;
- import org.apache.click.control.Option;
- import org.apache.click.control.PasswordField;
- import org.apache.click.control.Radio;
- import org.apache.click.control.RadioGroup;
- import org.apache.click.control.Select;
- import org.apache.click.control.Submit;
- import org.apache.click.control.TextField;
- import org.apache.click.dataprovider.DataProvider;
- import org.apache.click.extras.control.CheckList;
- public class HelloControls extends org.apache.click.Page {
- private Form form = new Form("controlForm");
- private TextField tf;
- private PasswordField pf;
- private Select select;
- private Select multiSelect;
- private CheckList cl;
- private RadioGroup rg;
- private FileField ff;
- public ActionLink al = new ActionLink("al", this, "onActionLinkTrigger");
- private void init(){
- //textfield
- tf = new TextField("username", "账号", true);
- tf.setMinLength(5);
- tf.setMaxLength(16);
- //paswordfield
- pf = new PasswordField("passwd", "密码", false);
- tf.setMinLength(6);
- //select
- select = new Select("gender", "性别");
- select.setDataProvider(new DataProvider
- public List
- List
- options.add(new Option("男", "男"));
- options.add(new Option("女", "女"));
- return options;
- }
- });
- select.setValue("男");
- //multi-select
- multiSelect = new Select("hobby", "爱好");
- multiSelect.setMultiple(true);
- multiSelect.setDataProvider(new DataProvider
- public List
- List
- options.add(new Option("看电影","看电影"));
- options.add(new Option("踢足球", "踢足球"));
- options.add(new Option("看书", "看书"));
- return options;
- }
- });
- multiSelect.setDefaultOption(Option.EMPTY_OPTION);
- //radio
- rg = new RadioGroup("marriage");
- rg.add(new Radio("未婚", "未婚"));
- rg.add(new Radio("已婚", "已婚"));
- rg.setValue("未婚");
- //checkbox
- cl = new CheckList("getway","您从哪里获知我们");
- cl.addAll(new String[]{"网络","电视","朋友","其他"});
- //filefield
- ff = new FileField("photo", "您的照片");
- }
- public HelloControls(){
- init();
- addControl(form);
- form.add(tf);
- form.add(pf);
- form.add(select);
- form.add(multiSelect);
- form.add(rg);
- form.add(cl);
- form.add(ff);
- form.add(new Submit("保存",this,"onSubmitClick"));
- form.add(new Submit("取消", this, "onCancelClick"));
- }
- public boolean onSubmitClick(){
- return false;
- }
- public boolean onCancelClick(){
- return true;
- }
- public boolean onActionLinkTrigger(){
- addModel("msg", "您点击了actionLink");
- return false;
- }
- }
helloPage.htm
view plaincopy to clipboard?
-
Blank - $headElements
- $controlForm
- #if($msg)
- $msg
- #end
- $jsElements
最终在Safari中请求helloPage您会看到
初始化TextField的时候可以添加第三个参数来表示需要非空验证,如 tf = new TextField("username", "账号", true); 所以,当您未填写任何信息的时候,点击提交会出现错误提示,这就为我们节省了很多去写验证方法的事件,看看它的提示信息是怎样的吧.。
我还加入了最简单的actionlink事件,点击上方的 learn more 下面就会出现msg的提示,你所要做的只是在处理方法中用addModel,将消息添加到model中。
总结:Click的组件直接在java文件中编译好,速度很快;基于事件驱动的方式也是不错的。
怎样快速开发右脑
求Java结合Apache-AXIS的Web开发资料
请高手解释一下PHP+APACHE+MYSQL的开发模式
开发右脑的快速方法
有谁知道怎么用APACHE 的 XML SECURITY开发XML的数字签名吗
水晶冰衫知道怎么用APACHE 的 XML SECURITY开发XML的数字签名吗
谁知道click-click-bang这个游戏
如何快速入门pic16f873单片机开发?
怎么能快速学会电脑软件开发?
delphi中如何实现单据的快速开发
right click是什么意思?
CLICK-B资料
click to dvd 下载
click here是什么意思?
CLICK-B全部歌曲下载~
168click如何进去
click什么意思??
VF程序click事件
apache使用
tomcat ??apache???
apache是什么意思?
apache问题
如何用ctrl+click跟踪超连接 ?click是什么?
谁知道CLICK-B这个组合?????