⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 section.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
字号:
/* * $Id: Section.java 5462 2005-08-05 18:35:48Z jonesde $ * * Copyright (c) 2001-2003 Sun Microsystems Inc., published in "Advanced Java Server Pages" by Prentice Hall PTR * Copyright (c) 2001-2002 The Open For Business Project - www.ofbiz.org * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */package org.ofbiz.webapp.region;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.GeneralException;import org.ofbiz.base.util.UtilJ2eeCompat;import org.ofbiz.webapp.control.RequestHandler;import org.ofbiz.webapp.view.JPublishWrapper;import org.ofbiz.webapp.view.ViewHandler;import org.ofbiz.webapp.view.ViewHandlerException;/** * A section is content with a name that implements Content.render.  * <p>That method renders content either by including * it or by printing it directly, depending upon the direct * value passed to the Section constructor.</p> * * <p>Note that a section's content can also be a region;if so, * Region.render is called from Section.Render().</p> * * @author     David M. Geary in the book "Advanced Java Server Pages" * @author     <a href="mailto:jonesde@ofbiz.org">David E. Jones</a> * @version    $Rev: 5462 $ * @since      2.0 */public class Section extends Content {    protected final String name;    protected final String info;    protected RegionManager regionManager;        public final static String module = Section.class.getName();    public Section(String name, String info, String content, String type, RegionManager regionManager) {        super(content, type);        this.name = name;        this.info = info;        this.regionManager = regionManager;    }    public String getName() {        return name;    }    public void render(PageContext pageContext) throws JspException {        try {            if (UtilJ2eeCompat.doFlushOnRender(pageContext.getServletContext())) {                pageContext.getOut().flush();            }            render((HttpServletRequest) pageContext.getRequest(), (HttpServletResponse) pageContext.getResponse());        } catch (java.io.IOException e) {            Debug.logError(e, "Error rendering section: ", module);            if (UtilJ2eeCompat.useNestedJspException(pageContext.getServletContext()))                throw new JspException(e);            else                throw new JspException(e.toString());        } catch (ServletException e) {            Throwable throwable = e.getRootCause() != null ? e.getRootCause() : e;            Debug.logError(throwable, "Error rendering section: ", module);            if (UtilJ2eeCompat.useNestedJspException(pageContext.getServletContext()))                throw new JspException(throwable);            else                throw new JspException(throwable.toString());        }    }    public void render(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException {        ServletContext context = (ServletContext) request.getAttribute("servletContext");        boolean verboseOn = Debug.verboseOn();        if (verboseOn) Debug.logVerbose("Rendering " + this.toString(), module);        // long viewStartTime = System.currentTimeMillis();        if (content != null) {            if ("direct".equals(type)) {                if (UtilJ2eeCompat.useOutputStreamNotWriter(context)) {                    response.getOutputStream().print(content);                } else {                    response.getWriter().print(content);                }            } else if ("default".equals(type) || "region".equals(type) || "resource".equals(type) || "jpublish".equals(type)) {                // if type is resource then we won't even look up the region                // if this is default or region, check to see if the content points to a valid region name                Region region = null;                if ("default".equals(type) || "region".equals(type)) {                    region = regionManager.getRegion(content);                }                if ("region".equals(type) || region != null) {                    if (region == null) {                        throw new IllegalArgumentException("No region definition found with name: " + content);                    }                    // render the content as a region                    RegionStack.push(request, region);                    region.render(request, response);                    RegionStack.pop(request);                } else if ("jpublish".equals(type)) {                    // rather then using the view handler use the wrapper directly                    ServletContext sctx = (ServletContext) request.getAttribute("servletContext");                    if (sctx != null) {                        JPublishWrapper jp = this.getJPublishWrapper(sctx);                        if (jp != null) {                            String contentStr = "<!-- " + content + " Not Processed -->";                            try {                                contentStr = jp.render(content, request, response);                            } catch (GeneralException e) {                                Debug.logError(e, "Problems rendering view from JPublish", module);                                                            }                            if (UtilJ2eeCompat.useOutputStreamNotWriter(context)) {                                response.getOutputStream().print(contentStr);                            } else {                                response.getWriter().print(contentStr);                            }                        } else {                            throw new IllegalStateException("No jpublishWrapper found in ServletContext");                        }                    } else {                        throw new IllegalStateException("No servletContext found in request");                    }                } else {                    // default is the string that the ViewFactory expects for webapp resources                    viewHandlerRender("default", request, response);                }            } else {                viewHandlerRender(type, request, response);            }        }        if (verboseOn) Debug.logVerbose("DONE Rendering " + this.toString(), module);    }    protected void viewHandlerRender(String typeToUse, HttpServletRequest request, HttpServletResponse response) throws ServletException {        ServletContext context = (ServletContext) request.getAttribute("servletContext");        RequestHandler requestHandler = (RequestHandler) context.getAttribute("_REQUEST_HANDLER_");        // see if the type is defined in the controller.xml file        try {            if (Debug.verboseOn()) Debug.logVerbose("Rendering view [" + content + "] of type [" + typeToUse + "]", module);            ViewHandler vh = requestHandler.getViewFactory().getViewHandler(typeToUse);            // use the default content-type and encoding for the ViewHandler -- may want to change this.            vh.render(name, content, info, null, null, request, response);        } catch (ViewHandlerException e) {            throw new ServletException(e.getNonNestedMessage(), e.getNested());        }    }    protected JPublishWrapper getJPublishWrapper(ServletContext ctx) {        JPublishWrapper wrapper = (JPublishWrapper) ctx.getAttribute("jpublishWrapper");        if (wrapper == null) {            wrapper = new JPublishWrapper(ctx);        }        return wrapper;    }    public String toString() {        return "Section: " + name + ", info=" + info + ", content=" + content + ", type=" + type;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -