📄 ifnotpageinpathtag.java
字号:
package org.jahia.taglibs.field.page;import org.jahia.data.JahiaData;import org.jahia.exceptions.JahiaException;import org.jahia.services.pages.JahiaPage;import org.jahia.utils.JahiaConsole;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;/** * Class IfNotPageInPathTag : evaluates the body only if the given page is not in the * path of the current page. * This tag must be enclosed inside a PageField tag. * This tag is the "else" part of the "IfPageInPath" tag. * * @author Jerome Tamiotti */public class IfNotPageInPathTag extends BodyTagSupport { public int doStartTag() { // looks for the enclosing PageField tag PageFieldTag parent = (PageFieldTag) findAncestorWithClass(this, PageFieldTag.class); if (parent == null) { return SKIP_BODY; } JahiaPage thePage = parent.getPage(); if (thePage != null) { ServletRequest request = pageContext.getRequest(); JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData"); if (jData == null) { HashMap tempEngineMap = (HashMap) request.getAttribute("org.jahia.engines.EngineHashMap"); jData = (JahiaData) tempEngineMap.get("jData"); } // loops through the current path try { Enumeration thePath = jData.page().getPagePath(); while (thePath.hasMoreElements()) { JahiaPage aPage = (JahiaPage) thePath.nextElement(); if (aPage.getID() == thePage.getID()) { return SKIP_BODY; } } } catch (JahiaException je) { JahiaConsole.println("IfNotPageInPathTag: doStartTag ",je.toString()); } return EVAL_BODY_BUFFERED; } else { return SKIP_BODY; } } public int doAfterBody() { try { bodyContent.writeOut(bodyContent.getEnclosingWriter()); } catch (IOException ioe) { JahiaConsole.println("IfNotPageInPathTag: doAfterBody ",ioe.toString()); } return SKIP_BODY; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -