diff --git a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java index 9c3d0b7b3..a1c3e2165 100644 --- a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java +++ b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java @@ -256,7 +256,6 @@ private void write(boolean requestScoped) { } else { writer.append(indent); writeContextReturn(responseMode, "result"); - writer.eol(); } if (includeNoContent) { writer.append(" }").eol(); @@ -268,7 +267,7 @@ private void writeContextReturn(ResponseMode responseMode, String resultVariable final UType type = UType.parse(method.returnType()); if ("java.util.concurrent.CompletableFuture".equals(type.mainType())) { logError(method.element(), "CompletableFuture is not a supported return type."); - writer.append("; //ERROR"); + writer.append("; //ERROR").eol(); return; } @@ -280,6 +279,7 @@ private void writeContextReturn(ResponseMode responseMode, String resultVariable case Templating -> writer.append("ctx.html(%s);", resultVariable); default -> writer.append("ctx.contentType(\"%s\").write(%s);", produces, resultVariable); } + writer.eol(); } private void writeJsonReturn(String produces) { diff --git a/tests/test-jex/src/main/java/org/example/web/ContentController.java b/tests/test-jex/src/main/java/org/example/web/ContentController.java index 86ebac2e1..4839b1437 100644 --- a/tests/test-jex/src/main/java/org/example/web/ContentController.java +++ b/tests/test-jex/src/main/java/org/example/web/ContentController.java @@ -6,21 +6,22 @@ import io.avaje.http.api.Get; import io.avaje.http.api.Path; import org.example.web.template.ViewHome; +import org.example.web.template.ViewPartial; @Controller @Html @Path("ui") public class ContentController { + @HxRequest @Get - Object index() { - return new ViewHome("Hi"); + ViewPartial indexHxPartial() { + return new ViewPartial("Rob"); } - @HxRequest @Get - Object indexHxReqest() { - return new ViewHome("Hi"); + ViewHome index() { + return new ViewHome("Hi"); } } diff --git a/tests/test-jex/src/main/java/org/example/web/template/ViewPartial.java b/tests/test-jex/src/main/java/org/example/web/template/ViewPartial.java new file mode 100644 index 000000000..e13474dc2 --- /dev/null +++ b/tests/test-jex/src/main/java/org/example/web/template/ViewPartial.java @@ -0,0 +1,12 @@ +package org.example.web.template; + +import io.jstach.jstache.JStache; + +@JStache(path = "partial") +public class ViewPartial { + public final String name; + + public ViewPartial(String name) { + this.name = name; + } +} diff --git a/tests/test-jex/src/main/resources/public/openapi.json b/tests/test-jex/src/main/resources/public/openapi.json index 14d428f96..08606d29d 100644 --- a/tests/test-jex/src/main/resources/public/openapi.json +++ b/tests/test-jex/src/main/resources/public/openapi.json @@ -1280,7 +1280,7 @@ "content" : { "text/html;charset=UTF8" : { "schema" : { - "$ref" : "#/components/schemas/Object" + "$ref" : "#/components/schemas/ViewHome" } } } @@ -1405,8 +1405,21 @@ } } }, - "Object" : { - "type" : "object" + "ViewHome" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + } + } + }, + "ViewPartial" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + } + } }, "WebHelloDto" : { "type" : "object", diff --git a/tests/test-jex/src/main/resources/ui/fragments/layout.mustache b/tests/test-jex/src/main/resources/ui/fragments/layout.mustache index 26a8c9e85..2d04ac9a8 100644 --- a/tests/test-jex/src/main/resources/ui/fragments/layout.mustache +++ b/tests/test-jex/src/main/resources/ui/fragments/layout.mustache @@ -5,7 +5,6 @@
-