ExtDirectSpring is a library that connects Ext JS applications with a Java/Spring back end, by implementing the Ext Direct specification.
The library supports all the features of Ext Direct:
- Configuration with annotations
- Simple remote calls
- Named parameters
- Method batching
- Form post
- Form post with file upload
- Polling
Remote method parameters support generic types, including nested collections and maps,
Optional<T>, and type parameters inherited from a base class. For example:
@ExtDirectMethod
public void saveTeams(Map<String, List<Person>> teams) {
// JSON objects in each team's list are bound to Person instances.
}JSON API discovery (/api.js?format=json) includes the configured timeout, retry,
buffering, and batch buffer limit settings, just like JavaScript discovery.
The JSON router returns HTTP 400 for malformed payloads, non-object batch entries,
or requests without an action or method. It validates the entire batch before
invoking methods. Polling URLs only invoke methods annotated with
@ExtDirectMethod(ExtDirectMethodType.POLL).
ExtDirectSpring is available from the Central Maven Repository.
<dependency>
<groupId>ch.ralscha</groupId>
<artifactId>extdirectspring</artifactId>
<version>....</version>
</dependency>
If you have a question about extdirectspring post it on GitHub Discussions. Or if you want to report a bug or request a feature, please open an issue on GitHub Issues.
- 3.0.0: Spring 7.0.6, Servlet 6.1.0, Jackson 3.1.1, Java 17
- 2.1.5: Spring 6.2.6, Servlet 6.1.0, Jackson 2.18.3, Java 17 (Jakarta)
- 1.8.1: Spring 5.1.2, Servlet 3.0, Jackson 2.9, Java 1.8
- 1.7.4: Spring 4.3.1, Servlet 3.0, Jackson 2.8, Java 1.6
- 1.6.1: Spring 4.2.0, Servlet 3.0, Jackson 2.6, Java 1.6
- 1.5.2: Spring 4.1.2, Servlet 3.0, Jackson 2.5, Java 1.6
- 1.4.3: Spring 4.0.0, Servlet 3.0, Java 1.6
- 1.3.9: Spring 3.2.1, Servlet 2.4, Java 1.6
- 1.2.3: Spring 3.1.2, Servlet 2.4, Java 1.6
- 1.1.3: Spring 3.0.7, Servlet 2.4, Java 1.5