【问题标题】:Apache Wicket error : Class does neither have a constructor with PageParameter nor a default constructorApache Wicket 错误:类既没有带有 PageParameter 的构造函数,也没有默认构造函数
【发布时间】:2015-09-30 18:34:32
【问题描述】:

我的代码

package com.remp.xyz;

import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.RequiredTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.model.Model;
import org.apache.wicket.validation.validator.EmailAddressValidator;
import org.apache.wicket.validation.validator.NumberValidator.RangeValidator;

public class FormValidation extends WebPage { 

    FormValidation(final PageParameters parameters) { 
        prepareComponent(); 
    }

    void prepareComponent() {
        FeedbackPanel feedBackPanel = new FeedbackPanel("feedbackMsg");

        Form<?> form = new Form<Object>("form");

        TextField<String> name = new RequiredTextField<String>("name", new Model<String>()); 
        TextField<Integer> age = new RequiredTextField<Integer>("age", new Model<Integer>()); 
        TextField<String> email = new RequiredTextField<String>("email", new Model<String>()); 
        TextField<String> zipcode = new RequiredTextField<String>("zipcode", new Model<String>()); 


        age.setType(Integer.class);
        age.add(RangeValidator.range(12, 60));
        email.add(EmailAddressValidator.getInstance());

        form.add(new Button("submit") { 

            private static final long serialVersionUID = 1L;

            @Override
            public void onSubmit() {
                super.onSubmit();
            }
        });

    add(feedBackPanel);
    add(form);
    form.add(name);
    form.add(age);
    form.add(email);
    form.add(zipcode);

    }

}

我遇到以下错误:

Apache Wicket error : Class does neither have a constructor with PageParameter nor a default constructor

我有什么遗漏吗?显然这个类有一个构造函数所以我不确定问题是什么?

【问题讨论】:

  • 您使用的是什么版本的 Wicket?您可能正在导入错误的页面参数。我的代码导入 org.apache.wicket.request.mapper.parameter.PageParameters;
  • 改进问题以便更好地理解
  • 构造函数应该是公共的,但是在你的类中你使用了默认范围。
  • @AndreaDelBene 给出最好的诊断

标签: java forms validation wicket


【解决方案1】:

这次我将尝试通过将 Andrea Del Bene 的答案作为正确答案来窃取他的分数:

构造函数必须具有public可见性

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2012-07-14
    • 2016-07-18
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多