| By Javier Paniza | Article Rating: |
|
| June 16, 2009 03:45 PM EDT | Reads: |
2,281 |
OpenXava 3.1.3 is a framework to develop Java Enterprise applications in a different way: OpenXava avoids MVC. It's a JPA Application Engine in that you provide only your POJOs annotated with JPA and you obtain an application ready for production.
Productivity
With OpenXava, you only need to write your model, POJOs with annotations. You do not need to write the view, and the controller (for CRUD, printing, etc) is reused.
That is, you only write a class as this one:
@Entity
public class Teacher {
@Id @Column(length=5) @Required
private String id;
@Column(length=40) @Required
private String name;
// Getters and setters
}
And you have an application (see it here) for CRUD, report generation in PDF, export to Excel, searching, sorting, validations etc. You only need to write a simple Java class, no XMLs, no JSPs and no code generation.
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.
Flexibility
Given OpenXava was used since its very beginning to develop real life business application (not mere prototypes) it has a high level of flexibility thanks to its powerful declarative view annotations, the custom editors for properties, and the option of creating the view by hand.
Moreover, since this new 3.1.3 version, OpenXava allows you to define the way the user interface is generated. This is possible because you can declare custom editors for references (@ManyToOne, @OneToOne) and collections (@OneToMany, @ManyToMany). That is, if you have this collection in your JPA entity:
@OneToMany(mappedBy="parent", cascade=CascadeType.REMOVE)
private Collection<BlogComment> comments;
Then OpenXava produces a generic user interface for the collection, just like the one in this demo. If this user interface is not suitable for this case you can use the @Editor annotation:
@OneToMany(mappedBy="parent", cascade=CascadeType.REMOVE)
@Editor("BlogComments")
private Collection<BlogComment> comments;
And you have your editor defined in editors.xml thus:
<editor name="BlogComments" url="blogCommentsEditor.jsp"/>
If you have BlogComment collections scattered accross your application, you can define the editor as following:
<editor url="blogCommentsEditor.jsp">
<for-collection model="BlogComment"/>
</editor>
In this way you do not need to use @Editor in each BlogComment collection.
Also, you can define the default editor for all collections or references, as following:
<editor name="MyCollection" url="myCollectionEditor.jsp">
<for-collections/>
</editor>
<editor name="MyReference" url="myReferenceEditor.jsp">
<for-references/>
</editor>
Thus, all the collections and references of the application will be render with your own editors. So, you are defining the way the user interface generator of OpenXava works.
More info: http://www.openxava.org/
Published June 16, 2009 Reads 2,281
Copyright © 2009 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
- Replay Solutions Introduces TiVo(R) Functionality for Software; Enterprises Can Record and Replay Applications to Find Bugs
- NetBeans Announces its 5.5 IDE; Only Free IDE to Provide Comprehensive Support for Java EE 5
- eApps Hosting Now Offers the GlassFish Java Application Server in VPS Hosting Plans
- OpenXava 3.1.4 Released
- OpenXava 3.1.4: Open Source Framework to Develop WebSphere Portal Applications
More Stories By Javier Paniza
Javier Paniza is the project lead for OpenXava project. He works as software developer at Gestión 400, a software company for public administration in Spain. He has been developing with Java Enterprise since 1998. Also he has been J2EE mentor for development teams in banking projects.
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- Confessions of a Ulitzer Addict
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Moving Your RIA Apps into the Cloud: Seven Challenges
- Adobe’s Aiming ColdFusion at Multiple Clouds
- Windows 7 – Microsoft’s First Step to the Cloud
- Ulitzer Provides a Powerful Social Journalism Platform
- Jill Tummler Singer, Deputy CIO of CIA, Keynotes at GovIT Expo
- Open Source Mobile Cloud Sync and Push Email
- Practical Approaches for Optimizing Website Performance
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- US Post Office Hops a Ride on NetSuite’s Cloud
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- WPF Controls by DevExpress
- Moving Your RIA Apps into the Cloud: Seven Challenges
- Building a Drag-and-Drop Shopping Cart with AJAX
- What Is AJAX?
- Google Maps! AJAX-Style Web Development Using ASP.NET
- Flashback to January 2006: Exclusive SYS-CON.TV Interviews on "OpenAjax Alliance" Announcement
- AJAXWorld Conference & Expo to Take Place October 2-4, 2006, at the Santa Clara Convention Center, California
- AJAX Sponsor Webcasts Are Now Available at AJAXWorld Website
- How and Why AJAX, Not Java, Became the Favored Technology for Rich Internet Applications
- "Real-World AJAX" One-Day Seminar Arrives in Silicon Valley
- AJAXWorld University Announces AJAX Developer Bootcamp
- AJAX Support In JadeLiquid WebRenderer v3.1
- Where Are RIA Technologies Headed in 2008?
- Struts Validations Framework Using AJAX




































