我正在尝试从表格中选择数据使用Listview将这些数据以表格格式放在网页上,但是我收到了错误

时间:2012-03-21 07:05:56

标签: java wicket

我正在尝试从我的数据库/表格中获取数据将该数据打印到多个文本字段中。所有文本字段都在listview中,但它会出现以下错误:

  

错误:无法使用构造函数public com.cerebrum.pages.AdminViewUser()实例化页面

请检查我的代码:

 public class AdminViewUser extends Home
   {
        Users UserModel=new Users();
List<Users> listCal = new ArrayList<Users>();
public AdminViewUser()
{
    super();
    add(new AdminViewUserForm());
}

public class AdminViewUserForm extends Form
{
    public AdminViewUserForm()
    {
    super("AdminViewUserForm");

    /*final WebMarkupContainer webMarkupContainer = new   WebMarkupContainer("webMarkupContainer");
    add(webMarkupContainer);
    webMarkupContainer.setOutputMarkupId(true);*/

     ListView listViewCal = new ListView("listViewCal", listCal) 
     {
         protected void populateItem(ListItem item) 
            {
    CheckBox chkBoxSelect=new CheckBox("chkBoxSelect");
    add(chkBoxSelect);

    TextField first_name=new TextField("txtFname");
    add(first_name);

    TextField middle_name=new TextField("txtMname");
    add(middle_name);

    TextField last_name=new TextField("txtLname");
    add(last_name);

    TextField dateOfBirth=new TextField("txtDOB");
    add(dateOfBirth);

    TextField emailid=new TextField("txtEmail");
    add(emailid);

    TextField mobileno=new TextField("txtMobileNo");
    add(mobileno);

    TextField user_name=new TextField("txtUserName");
    add(user_name);

    TextField password=new TextField("txtPassword");
    add(password);
     }
};
     listViewCal.setOutputMarkupId(true);
     add(listViewCal);
        //webMarkupContainer.add(listViewCal);

        List lstUsers=UsersHome.getUserInfo();
        for(Iterator iterator=lstUsers.iterator();iterator.hasNext();)
        {
            Object[] obj=(Object[])iterator.next();
            System.out.println(obj[8].toString()+"***************");
            listCal.add(new Users(obj[8].toString(),obj[9].toString(),obj[10].toString(),obj[18].toString(),obj[14].toString(),obj[12].toString(),obj[6].toString(),obj[7].toString()));

        }

    }




}
}

1 个答案:

答案 0 :(得分:2)

您的代码存在一些问题。首先,检查异常。真正的问题是进一步下降。 Wicket显示“错误:无法使用构造函数public com.cerebrum.pages.AdminViewUser()实例化页面”,因为该构造函数中存在异常。我猜你会发现一个NullPointerException。

然而,您不提供表单组件的模型(CheckBoxes,Textfields)。 Wicket不知道如何从User对象中读取和设置值。一种方法是在populateItem()中设置CompoundPropertyModel。

您从一堆字符串构造User,但稍后访问Checkbox的成员。复选框需要布尔模型。

不确定如何阅读用户对象。但是来自Object []的投射似乎很容易破解......