56 lines
1.2 KiB
Markdown
56 lines
1.2 KiB
Markdown
# flash-ext-view
|
|
|
|
Lightweight SSR view extension for Flash.
|
|
|
|
This module provides a focused MVC surface:
|
|
|
|
- `ViewExtension`
|
|
- `ViewHandler`
|
|
- `@Page` and `@Partial`
|
|
- `ViewModel` and opinionated `global.*` values
|
|
- `ViewEngineAdapter`
|
|
|
|
No legacy annotation/renderer API is exposed.
|
|
|
|
`@Page`/`@Partial` are valid only on `ViewHandler` subclasses.
|
|
|
|
## Quick Start
|
|
|
|
```java
|
|
import dev.relism.extension.FlashApp;
|
|
import dev.relism.ext.view.*;
|
|
|
|
FlashApp.create(8080)
|
|
.install(new ViewExtension(ViewEngineType.THYMELEAF)
|
|
.addGlobal("appName", req -> "Flash")
|
|
.addGlobal("requestPath", req -> req.path()))
|
|
.scan("com.example.web")
|
|
.startAndBlock();
|
|
```
|
|
|
|
`global` is a reserved namespace. Handlers cannot write a top-level `global` key.
|
|
|
|
```java
|
|
import dev.relism.ext.view.*;
|
|
import dev.relism.routing.GET;
|
|
|
|
@GET("/")
|
|
@Page("pages/home")
|
|
public final class HomePage extends ViewHandler {
|
|
@Override
|
|
public ViewModel render(dev.relism.models.Request req) {
|
|
return ViewModel.of("title", "Home");
|
|
}
|
|
}
|
|
```
|
|
|
|
## Docs
|
|
|
|
- `docs/architecture.md`
|
|
- `docs/handlers.md`
|
|
- `docs/model-and-globals.md`
|
|
- `docs/partials.md`
|
|
- `docs/adapters.md`
|
|
- `docs/performance.md`
|
|
- `docs/migration-from-legacy-view.md`
|