я пытаюсь выбрать данные из таблицы и поместить эти данные в виде таблицы на веб-страницу с помощью Listview, но я получил ошибку - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь получить данные из моей базы данных / таблицы и распечатать эти данные в нескольких текстовых полях. Все текстовые поля находятся в списке, но выдает следующую ошибку:

Ошибка: невозможно создать экземпляр страницы с помощью конструктора 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 Ответ

2 голосов
/ 21 марта 2012

Есть несколько проблем с вашим кодом. Прежде всего, проверьте исключение. Настоящая проблема - дальше вниз. Wicket показывает «Ошибка: не удается создать экземпляр страницы с помощью конструктора public com.cerebrum.pages.AdminViewUser ()», поскольку в этом конструкторе было исключение. Я предполагаю, что вы найдете исключение NullPointerException.

Кроме того, вы не предоставляете модели для компонентов вашей формы (CheckBoxes, Textfields). Wicket не знает, как читать и устанавливать значения из ваших пользовательских объектов. Одним из способов является установка CompoundPropertyModel в populateItem ().

Вы создаете пользователя из набора строк, но позже получаете доступ к членам для флажков. Для флажков требуется логическая модель.

Не уверен, как вы читаете объекты пользователя. Но приведение от Object [], кажется, просто сломать ...

...