1515 */
1616package io .github .wimdeblauwe .hsbt .mvc ;
1717
18- import java .util .Locale ;
19- import java .util .Map ;
20-
21- import javax .servlet .http .HttpServletRequest ;
22- import javax .servlet .http .HttpServletResponse ;
23-
2418import com .fasterxml .jackson .databind .ObjectMapper ;
2519import org .slf4j .Logger ;
2620import org .slf4j .LoggerFactory ;
2721import org .springframework .beans .factory .ObjectFactory ;
28- import org .springframework .core .annotation .AnnotatedElementUtils ;
2922import org .springframework .util .Assert ;
3023import org .springframework .web .method .HandlerMethod ;
31- import org .springframework .web .servlet .HandlerInterceptor ;
32- import org .springframework .web .servlet .LocaleResolver ;
33- import org .springframework .web .servlet .ModelAndView ;
34- import org .springframework .web .servlet .View ;
35- import org .springframework .web .servlet .ViewResolver ;
24+ import org .springframework .web .servlet .*;
25+
26+ import javax .servlet .http .HttpServletRequest ;
27+ import javax .servlet .http .HttpServletResponse ;
28+ import java .util .Locale ;
29+ import java .util .Map ;
3630
3731/**
3832 * A {@link HandlerInterceptor} that turns {@link HtmxResponse} instances returned from controller methods into a
@@ -92,27 +86,27 @@ private void addHxHeaders(HtmxResponse htmxResponse, HttpServletResponse respons
9286 setTriggerHeader (HxTriggerLifecycle .SETTLE , htmxResponse .getTriggersAfterSettle (), response );
9387 setTriggerHeader (HxTriggerLifecycle .SWAP , htmxResponse .getTriggersAfterSwap (), response );
9488
95- if (htmxResponse .getHeaderPushHistory () != null ) {
96- response .setHeader ("HX-Push" , htmxResponse .getHeaderPushHistory ());
89+ if (htmxResponse .getHeaderPushHistory () != null ) {
90+ response .setHeader (HtmxResponseHeader . HX_PUSH . getValue () , htmxResponse .getHeaderPushHistory ());
9791 }
98- if (htmxResponse .getHeaderRedirect () != null ) {
99- response .setHeader ("HX-Redirect" , htmxResponse .getHeaderRedirect ());
92+ if (htmxResponse .getHeaderRedirect () != null ) {
93+ response .setHeader (HtmxResponseHeader . HX_REDIRECT . getValue () , htmxResponse .getHeaderRedirect ());
10094 }
101- if (htmxResponse .getHeaderRefresh ()) {
102- response .setHeader ("HX-Refresh" , "true" );
95+ if (htmxResponse .getHeaderRefresh ()) {
96+ response .setHeader (HtmxResponseHeader . HX_REFRESH . getValue () , "true" );
10397 }
104- if (htmxResponse .getHeaderRetarget () != null ) {
105- response .setHeader ("HX-Retarget" , htmxResponse .getHeaderRetarget ());
98+ if (htmxResponse .getHeaderRetarget () != null ) {
99+ response .setHeader (HtmxResponseHeader . HX_RETARGET . getValue () , htmxResponse .getHeaderRetarget ());
106100 }
107101 }
108102
109103 private void setTriggerHeader (HxTriggerLifecycle triggerHeader , Map <String , String > triggers , HttpServletResponse response ) {
110- if (triggers .isEmpty ()) {
104+ if (triggers .isEmpty ()) {
111105 return ;
112106 }
113- if (triggers .size () == 1 ) {
107+ if (triggers .size () == 1 ) {
114108 Map .Entry <String , String > singleHeader = triggers .entrySet ().stream ().findFirst ().orElseThrow ();
115- if (singleHeader .getValue () == null || singleHeader .getValue ().isBlank ()) {
109+ if (singleHeader .getValue () == null || singleHeader .getValue ().isBlank ()) {
116110 response .setHeader (triggerHeader .getHeaderName (), singleHeader .getKey ());
117111 } else {
118112 try {
@@ -137,9 +131,9 @@ private View toView(HtmxResponse partials) {
137131 return (model , request , response ) -> {
138132 Locale locale = locales .getObject ().resolveLocale (request );
139133 for (String template : partials .getTemplates ()) {
140- views .resolveViewName (template , locale )
141- . render ( model , request , response );
142-
134+ View view = views .resolveViewName (template , locale );
135+ Assert . notNull ( view , "Template '" + template + "' could not be resolved" );
136+ view . render ( model , request , response );
143137 }
144138 };
145139 }
0 commit comments