ReportShell™ is a production-ready web integration layer for Spring Boot applications that use JasperReports Library for reporting. One starter adds built-in REST APIs plus a modern frontend viewer for serving your reports on the web.
/controls Fetch input control metadata: single vs multi-valued, entry vs choice, UI data type (Text, Number, Date, etc.), and any cascading dependencies.
/control-states Fetch initial control states including default values and option lists, re-evaluate dependent controls on control changes.
/render Render HTML previews or export to PDF, XLSX, CSV, and DOCX; any format supported by JasperReports® exporters or your own custom exporters.
/executions Execute and save the output JasperPrint once, render to multiple formats without the need for filling the report again. Plug-in your persistent storage if needed.
$X{IN, ...} and
$P{...} substitutions in input control queries
are analyzed using the JasperReports Library's query parser.
Dependencies are inferred from the query criteria, so you don't hard-code them.
The primary Spring JDBC DataSource is auto-connected
to both reports and input controls unless they explicitly refer
to a named data source. Single data source apps need no glue
code. ReportShell manages the connection lifecycle for both
through JasperReports Library's extension points.
SELECT id, name FROM cities
WHERE $X{IN, country_id, country}
AND region_id = $P{region}
ORDER BY name {
"parameter": "city",
"dataType": "Number",
"choice": true,
"multi": true,
"dependsOn": ["country", "region"]
} A ready-to-use React-based JavaScript web report viewer
Built on React and MUI . Date pickers, single-select and multi-select lists, cascading controls, plus a "select all" option that bypasses filtering.
Includes bundled translations for various languages. Selects the best matching translation from the Java locale you pass to it on initialization.
Configure locale, time zone and allowed export formats.
Predefined zoom sizes for HTML previews. Users pick the one that fits their screen.
Preview as HTML and export to any available format. Extra export settings cover pagination skipping, horizontal and vertical offsets, plus a "one sheet per page" toggle for Excel.
Import the viewer module, set up global configuration, then mount the viewer component on whichever DOM element you choose.
See details on our pricing page.
For local development and evaluation
1 dev, 1 application
Unlimited devs, 3 applications
See full feature comparison including SaaS and OEM licensing, plus support plans.