MySchool demo - Teachers management
  control alt P - Generate a PDF report with displayed data in list control alt X - Generate a Excel report with displayed data in list control N - Create a new entity control D - Delete the selected objects   Detail - List - Both  
 - Customize
Id 
Name 
 - Filter
F7 - Detail mode  - Delete record
Monsieur M s 
F7 - Detail mode  - Delete record
12 
jhfgghf 
F7 - Detail mode  - Delete record
wqwqw 
1   rows per page There are 3 objects in list ( Hide them)
Teacher code

In order to obtain this application you only need to write this code:

package org.openxava.school.model;

import javax.persistence.*;
import org.openxava.annotations.*;

@Entity
public class Teacher {
   
    @Id @Column(length=5) @Required  
    private String id;
   
    @Column(length=40) @Required
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

And you have an application for CRUD, report generation in PDF, export to excel, searching, sorting, validations etc. And for all this you only need to write a simple Java class, no XMLs, no JSPs and no code generation.

But, OpenXava is not only for writing simple CRUDs for simple classes, you can create sophisticated applications with complex logic and advanced UI. OpenXava supports references, collections, inheritance, nested tabs, nested frames for grouping, etc. Look at Reference Guide to know all the possibilities.