最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

扩展Sitemesh3DecoratorSelector实现基于请求参数调用装饰模板页面的实现_html/css

来源:懂视网 责编:小采 时间:2020-11-27 16:33:34
文档

扩展Sitemesh3DecoratorSelector实现基于请求参数调用装饰模板页面的实现_html/css

扩展Sitemesh3DecoratorSelector实现基于请求参数调用装饰模板页面的实现_html/css_WEB-ITnose:扩展入口Filter实现: package lab.s2jh.core.web.sitemesh;import org.sitemesh.DecoratorSelector;import org.sitemesh.builder.SiteMeshFilterBuilder;import org.sitemesh.config.Configurable
推荐度:
导读扩展Sitemesh3DecoratorSelector实现基于请求参数调用装饰模板页面的实现_html/css_WEB-ITnose:扩展入口Filter实现: package lab.s2jh.core.web.sitemesh;import org.sitemesh.DecoratorSelector;import org.sitemesh.builder.SiteMeshFilterBuilder;import org.sitemesh.config.Configurable

扩展入口Filter实现:

package lab.s2jh.core.web.sitemesh;import org.sitemesh.DecoratorSelector;import org.sitemesh.builder.SiteMeshFilterBuilder;import org.sitemesh.config.ConfigurableSiteMeshFilter;import org.sitemesh.webapp.WebAppContext;/** * 扩展实现注入基于request参数decorator值进行动态定位装饰器的选择器 */public class ParamConfigurableSiteMeshFilter extends ConfigurableSiteMeshFilter { protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) { //获取原有默认配置装饰选择器 DecoratorSelector defaultDecoratorSelector = builder.getDecoratorSelector(); //赋给自定义装饰选择器,则自定义规则未匹配时调用默认选择器获取 builder.setCustomDecoratorSelector(new ParamDecoratorSelector(defaultDecoratorSelector)); }}

定制装饰选择器实现:

package lab.s2jh.core.web.sitemesh;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils;import org.sitemesh.DecoratorSelector;import org.sitemesh.content.Content;import org.sitemesh.webapp.WebAppContext;/** * 基于request参数decorator值进行动态定位装饰器的选择器 * 如果decorator参数有值,则返回"/WEB-INF/views/layouts/" + decorator + ".jsp"作为目标装饰模板页面 */public class ParamDecoratorSelector implements DecoratorSelector { private DecoratorSelector defaultDecoratorSelector; public ParamDecoratorSelector(DecoratorSelector defaultDecoratorSelector) { this.defaultDecoratorSelector = defaultDecoratorSelector; } public String[] selectDecoratorPaths(Content content, WebAppContext context) throws IOException { // build decorator based on the request HttpServletRequest request = context.getRequest(); String decorator = request.getParameter("decorator"); if (StringUtils.isNotBlank(decorator)) { //按照参数值返回对应路径下面的jsp装饰模板页码 return new String[] { "/WEB-INF/views/layouts/" + decorator + ".jsp" }; } // Otherwise, fallback to the standard configuration return defaultDecoratorSelector.selectDecoratorPaths(content, context); }}

调整web.xml配置:

  sitemeshFilter lab.s2jh.core.web.sitemesh.ParamConfigurableSiteMeshFilter   sitemeshFilter /* 

文档

扩展Sitemesh3DecoratorSelector实现基于请求参数调用装饰模板页面的实现_html/css

扩展Sitemesh3DecoratorSelector实现基于请求参数调用装饰模板页面的实现_html/css_WEB-ITnose:扩展入口Filter实现: package lab.s2jh.core.web.sitemesh;import org.sitemesh.DecoratorSelector;import org.sitemesh.builder.SiteMeshFilterBuilder;import org.sitemesh.config.Configurable
推荐度:
标签: 装饰 页面 模板
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top