Framework Features

Everything you need to build modern, real-time web applications with Java.

Why Developers Choose Oorian

A unique approach to Java web development that gives you flexibility without sacrificing productivity.

Wrap Best-of-Breed Libraries

Use Webix, SyncFusion, WebAwesome, or ECharts. Get enterprise-grade UI components maintained by specialists—not reinvented wheels.

JDK-Style Event Model

Handle browser events with familiar listener patterns—just like Swing or JavaFX. Every extension uses consistent conventions for configuration and data binding.

Flexible Communication

Choose AJAX, AJAX + SSE, or WebSocket per page. Simple request-response when that's enough, server push when you need it, full real-time when you want it.

Pure Java Development

Write your entire application in Java—UI included. Leverage inheritance and polymorphism to build reusable controls. Type-safe, debuggable, OOP throughout.

No Vendor Lock-In

Unlike Vaadin or ZK, you're not locked into proprietary components. Switch UI libraries or mix them as your needs evolve.

Lightweight Architecture

Simple JSON messaging across all communication modes. No heavy client-side framework, no complex build tools. Just clean, understandable communication.

Production Proven

Not a prototype—Oorian powers iGradePlus, a 500k+ line commercial SaaS with hundreds of pages, in production for 10+ years.

Built-in JSON & XML

Native support for JSON and XML parsing, generation, and manipulation. No external libraries needed for common data formats.

Server-Side Worker Threads

Run background tasks on the server with automatic UI updates when complete. Long-running operations never block the user interface.

HTML Template Support

Integrate traditional HTML templates when needed via HtmlTemplatePage. Mix programmatic and template-based approaches as your project requires.

Built-in HTML & CSS Parsers

Parse and manipulate HTML and CSS programmatically. Transform existing markup or generate dynamic styles with full parser support.

Full URL Parameter Support

Complete support for query parameters, path variables, and URL routing. Build RESTful applications with clean, bookmarkable URLs.

Core Capabilities

Flexible Communication Options

Configure each page to use AJAX, AJAX + SSE, or WebSocket based on your needs. Simple forms can use AJAX, dashboards can use SSE for server push, and collaborative apps can use WebSocket for full bidirectional communication.

  • AJAX for simple request-response
  • SSE for server-initiated updates
  • WebSocket for real-time bidirectional
  • Configure per-page, mix as needed

Component-Based Architecture

Build your UI with composable Java components. Every HTML element is a first-class Java object with type-safe properties and methods.

  • Type-safe element construction
  • Reusable custom components
  • Full IDE autocomplete support
  • Compile-time error checking

Flexible Styling System

Apply CSS styles programmatically or via classes. The StyledElement base class provides fluent methods for all CSS properties.

  • Fluent CSS API
  • Dynamic style updates
  • CSS class management
  • State-based styling (hover, active, disabled)

Server-Side Event Handling

Handle all UI events on the server. Mouse clicks, keyboard input, form submissions—everything is processed by your Java code.

  • Mouse and touch events
  • Keyboard events with key codes
  • Form and input events
  • Custom server events

How Oorian Works

Browser
HTML/CSS/JS Oorian Client
Communication
AJAX / SSE / WebSocket JSON Messages
Oorian Server
Java Objects Event Handlers

Your Java code creates and manipulates element objects. Oorian serializes changes as JSON and sends them via your chosen transport—AJAX, SSE, or WebSocket. The browser applies updates to the DOM. Events flow back to your server-side handlers. It's transparent, efficient, and requires no client-side coding.

UI Library Integration

Each extension follows a consistent pattern: Java objects that configure and control JavaScript components. You get enterprise-grade UI without building it yourself.

java
// SyncFusion DataGrid example
SfDataGrid grid = new SfDataGrid();
grid.setDataSource(customers);
grid.setAllowPaging(true);
grid.setAllowSorting(true);
grid.setAllowFiltering(true);

// Add columns
grid.addColumn("name", "Customer Name");
grid.addColumn("email", "Email Address");
grid.addColumn("status", "Status");

// Handle selection
grid.registerListener(this, RowSelectedEvent.class);

container.addElement(grid);

Developer Experience

Full IDE Support

Autocomplete, refactoring, and navigation work perfectly. Your IDE knows every element, property, and method.

Easy Debugging

Set breakpoints in your event handlers. Step through your UI logic. No browser dev tools required.

Hot Reload Compatible

Works with JRebel and similar tools. Change your Java code and see updates without restarting.

Familiar Patterns

If you know Java and HTML/CSS, you already know Oorian. No new templating language to learn.