zoukankan      html  css  js  c++  java
  • wicket基础应用(2)--wicket表单控件的使用

    该文可以转载,但转载必须注明作者,出处: 
    作者:lhx1026 

    出处:http://lhx1026.iteye.com

    这一章介绍wicket表单控件的简单应用 

    1、Label控件 

    这个应该说是最常用的控件了 

    html代码: 

    <span wicket:id="toDo"></span>

    java代码:

    Label toDoLabel = new Label("toDo", new Model());

    其中,Label这个控件有几个构造函数,后面的参数可以是String,也可以是Model。Model是用来存放这个控件的值的。如果不需要获取这个控件的值,只是需要给这个控件赋值的话,可以用String。如果需要获取这个控件的值,可以通过以下语句获取: 

    toDoLabel.getDefaultModelObject();

    或者也可以这样 

    Model toDoModel = new Model();
    Label toDoLabel = new Label("toDo", toDoModel);
    
    Object obj = toDoModel.getObject();

    2、TextField控件:

    html代码:

    <input type="text"  wicket:id="entName" />

    java代码: 

    Model entNameModel = new Model();
    TextField entNameText = new TextField("entName", entNameModel);

    控件值的获取方式同上。 

    3、TextArea控件: 

    html代码: 

    <textarea cols="50" rows="5" wicket:id="linkAddress"></textarea>

    java代码:

    Model linkAddressModel = new Model();
    TextArea linkAddressArea = new TextArea("linkAddress", linkAddressModel);

    4、下拉框控件:

    html代码:

    <select wicket:id="status"> </select>

    java代码: 

            List<Integer> statusList = Arrays.asList(new Integer[] { 1, 2 });
            final HashMap<Integer, String> statusMap = new HashMap<Integer, String>();
            statusMap.put(new Integer(1), "有效");
            statusMap.put(new Integer(2), "暂停");
            IChoiceRenderer statusRenderer = new ChoiceRenderer() {
                @Override
                public Object getDisplayValue(Object object) {
                    return statusMap.get(object);
                }
            };
            DropDownChoice statusChoice = new DropDownChoice("status", statusModel, statusList, statusRenderer);

    其中,IChoiceRenderer的母的是为了将在字面上面显示的字符串跟stausMap中的值对应起来。这样的代码实例化的时候,下拉框会出现一个默认的选项:"请选择"。如果不想出现这个选项,在实例化DropDownChoice的时候,可以这样做: 

    DropDownChoice statusChoice = new DropDownChoice("status", statusModel, statusList, statusRenderer){
        @Override
        public String getDefaultValue() {
        return null;
        }
    };

    或者不想出现“请选择”,而是“全部”,可以这样写一个方法: 

        /**
         * 根据传入的参数得到一个下拉框
         * 
         * @param id
         * @param model
         * @param list
         * @param renderer
         * @param choice
         *            默认值,比如下拉框的第一个值为"请选择"
         * @return
         */
        private DropDownChoice getDownChoice(String id, Model model, List list, IChoiceRenderer renderer, final String choice) {
            return new DropDownChoice(id, model, list, renderer) {
                @Override
                protected CharSequence getDefaultChoice(Object arg0) {
                    if (choice != null) {
                        return new AppendingStringBuffer("
    <option selected="selected" value="">").append(choice).append("</option>");
                    } else
                        return null;
                }
            };
        }

    5、按钮 

     <input type="submit"  wicket:id="addSpNum" value="保存"  />
    Button addSpNumButton = new Button("addSpNum"){
        @Override
        public void onSubmit() {
            System.out.println("这里时点击按钮时触发的事件!");
        }
    };

    如果这个按钮是在表单中,则点击这个按钮会先触发表单的onSubmit()事件,然后再触发按钮本身的onSubmit()事件。如果不想触发表单的onSubmit()事件,则可以用下面的语句: 

    addSpNumButton.setDefaultFormProcessing(false);

    6、链接 

    <a wicket:id="more">more</a>

    普通链接 

    Link moreLink = new Link("more") {
    
                @Override
                public void onClick() {
                    System.out.println("这里是点击链接触发的事件");
                }
    
            };

    Ajax链接 

            AjaxLink moreLink = new AjaxLink("more") {
    
                @Override
                public void onClick(AjaxRequestTarget target) {
                    morePanel.setVisible(true);
                    target.addComponent(morePanel2);
                }
    
            };

    注意:这里如果是Ajax链接,那么如果要点击这个链接使其他的控件发生变化的时候,target.addComponent(...)这个方法里面要添加的控件,必须是你要改变的控件的父控件。 

    呵呵,这些最常用的控件就介绍到这里了,这些控件还有其他的使用方法,以后熟悉的话就知道了。

  • 相关阅读:
    Beta冲刺
    Beta冲刺总结随笔
    用户使用调查报告
    Beta冲刺测试随笔
    WeChair项目Beta冲刺(10/10)
    WeChair项目Beta冲刺(9/10)
    WeChair项目Beta冲刺(8/10)
    WeChair项目Beta冲刺(7/10)
    WeChair项目Beta冲刺(6/10)
    WeChair项目Beta冲刺(5/10)
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/5289355.html
Copyright © 2011-2022 走看看