You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (Jira)" <ji...@apache.org> on 2022/09/14 19:17:00 UTC
[jira] [Updated] (WW-3328) make sitemesh plugin OldDecorator2NewStrutsFreemarkerDecorator configurable
[ https://issues.apache.org/jira/browse/WW-3328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukasz Lenart updated WW-3328:
------------------------------
Description:
struts2 supports sitemesh2.4 now, WW-3291
I'd like to extends the default OldDecorator2NewStrutsFreemarkerDecorator to do something fantastic,like compress page,render html fragment for AJAX request
I with struts provide a @Inject way.
here is sample code
public class MyOldDecorator2NewStrutsFreemarkerDecorator extends OldDecorator2NewStrutsFreemarkerDecorator {
public static final String X_FRAGMENT = "X-FRAGMENT";
public MyOldDecorator2NewStrutsFreemarkerDecorator(Decorator oldDecorator) {
super(oldDecorator);
}
protected void render(Content content, HttpServletRequest request,
HttpServletResponse response, ServletContext servletContext,
ActionContext ctx) throws ServletException, IOException {
String replacement = request.getHeader(X_FRAGMENT);
if (replacement != null) {
StringWriter writer = new StringWriter();
content.writeBody(writer);
response.getWriter().write(HtmlUtils.compress(replacement.split(","), writer.toString()));
return;
} else {
super.render(content, request, response, servletContext, ctx);
}
}
}
was:
struts2 supports sitemesh2.4 now, https://issues.apache.org/struts/browse/WW-3291
I'd like to extends the default OldDecorator2NewStrutsFreemarkerDecorator to do something fantastic,like compress page,render html fragment for AJAX request
I with struts provide a @Inject way.
here is sample code
public class MyOldDecorator2NewStrutsFreemarkerDecorator extends OldDecorator2NewStrutsFreemarkerDecorator {
public static final String X_FRAGMENT = "X-FRAGMENT";
public MyOldDecorator2NewStrutsFreemarkerDecorator(Decorator oldDecorator) {
super(oldDecorator);
}
protected void render(Content content, HttpServletRequest request,
HttpServletResponse response, ServletContext servletContext,
ActionContext ctx) throws ServletException, IOException {
String replacement = request.getHeader(X_FRAGMENT);
if (replacement != null) {
StringWriter writer = new StringWriter();
content.writeBody(writer);
response.getWriter().write(HtmlUtils.compress(replacement.split(","), writer.toString()));
return;
} else {
super.render(content, request, response, servletContext, ctx);
}
}
}
> make sitemesh plugin OldDecorator2NewStrutsFreemarkerDecorator configurable
> ---------------------------------------------------------------------------
>
> Key: WW-3328
> URL: https://issues.apache.org/jira/browse/WW-3328
> Project: Struts 2
> Issue Type: Improvement
> Components: Plugin - SiteMesh
> Reporter: Yanming Zhou
> Assignee: Musachy Barroso
> Priority: Major
> Fix For: 6.1.0
>
>
> struts2 supports sitemesh2.4 now, WW-3291
> I'd like to extends the default OldDecorator2NewStrutsFreemarkerDecorator to do something fantastic,like compress page,render html fragment for AJAX request
> I with struts provide a @Inject way.
> here is sample code
> public class MyOldDecorator2NewStrutsFreemarkerDecorator extends OldDecorator2NewStrutsFreemarkerDecorator {
> public static final String X_FRAGMENT = "X-FRAGMENT";
> public MyOldDecorator2NewStrutsFreemarkerDecorator(Decorator oldDecorator) {
> super(oldDecorator);
> }
> protected void render(Content content, HttpServletRequest request,
> HttpServletResponse response, ServletContext servletContext,
> ActionContext ctx) throws ServletException, IOException {
> String replacement = request.getHeader(X_FRAGMENT);
> if (replacement != null) {
> StringWriter writer = new StringWriter();
> content.writeBody(writer);
> response.getWriter().write(HtmlUtils.compress(replacement.split(","), writer.toString()));
> return;
> } else {
> super.render(content, request, response, servletContext, ctx);
> }
> }
> }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)