package apps.flashscope;
import java.util.concurrent.atomic.AtomicInteger;
import org.jooby.FlashScope;
import org.jooby.Jooby;
import org.jooby.Results;
import org.jooby.hbs.Hbs;
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigValueFactory;
public class FlashScopeApp extends Jooby {
{
use(ConfigFactory.empty().withValue("server.module",
ConfigValueFactory.fromAnyRef("org.jooby.undertow.Undertow")));
use(new Hbs("/apps/flashscope"));
use(new FlashScope());
get("/", () -> Results.html("flash"));
get("/send", req -> {
req.flash("success", req.param("message").value("It works"));
return Results.redirect("/");
});
AtomicInteger inc = new AtomicInteger(100);
get("/toggle", req -> {
return req.ifFlash("n").orElseGet(() -> {
String v = Integer.toString(inc.incrementAndGet());
req.flash("n", v);
return v;
});
});
}
public static void main(final String[] args) throws Throwable {
run(FlashScopeApp::new, args);
}
}