Skip to content

Commit 092636c

Browse files
committed
extend preProcess hook // change params map resolver
1 parent f815e67 commit 092636c

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/main/java/com/s24/search/solr/response/ThymeleafResponseWriter.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,24 @@ public void write(Writer writer, SolrQueryRequest request, SolrQueryResponse res
8383
templateEngine.clearTemplateCache();
8484
}
8585

86+
HttpServletRequest httpServletRequest = null;
87+
88+
if (request.getHttpSolrCall().getReq() != null) {
89+
httpServletRequest = request.getHttpSolrCall().getReq();
90+
} else if (request.getContext().containsKey("httpRequest")) {
91+
// requestDispatcher/requestParsers/@addHttpRequestToContext may be disabled
92+
httpServletRequest = (HttpServletRequest) request.getContext().get("httpRequest");
93+
}
94+
8695
// Prefill context with some defaults
87-
HttpServletRequest httpServletRequest = (HttpServletRequest) request.getContext().get("httpRequest");
8896
WebContext context = new WebContext(
8997
httpServletRequest,
9098
new FakeServletResponse(),
9199
httpServletRequest.getServletContext(),
92100
locale
93101
);
94102
context.setVariable("request", request);
95-
context.setVariable("params", toMap(request.getParams().toNamedList()));
103+
context.setVariable("params", request.getParams().toNamedList().asShallowMap());
96104

97105
// add core properties
98106
Properties coreProperties = request.getCore().getResourceLoader().getCoreProperties();
@@ -108,23 +116,15 @@ public void write(Writer writer, SolrQueryRequest request, SolrQueryResponse res
108116
context.setVariable("response", rsp);
109117

110118
// let subclasses add context info (if needed)
111-
preProcess(context);
119+
preProcess(context, request, response);
112120

113121
getEngine().process(templateName, context, writer);
114122
}
115123

116-
protected void preProcess(WebContext context) {
124+
protected void preProcess(WebContext context, SolrQueryRequest request, SolrQueryResponse response) {
117125
// hook to customize context, noop by default
118126
}
119127

120-
private static Map<String, String> toMap(NamedList<Object> params) {
121-
Map<String, String> map = new HashMap<>();
122-
for (int i = 0; i < params.size(); i++) {
123-
map.put(params.getName(i), params.getVal(i).toString());
124-
}
125-
return map;
126-
}
127-
128128
protected TemplateEngine getEngine() {
129129
// create engine
130130
if (templateEngine == null) {

0 commit comments

Comments
 (0)