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

📄 viewmanager.java

📁 Oracle的J2EE Sample
💻 JAVA
字号:
/* * @author : Umesh Kulkarni * @version 1.0 * * Development Environment : Oracle9i JDeveloper * Name of the File        : ViewManager.java * Creation / Modification History *    Umesh           26-Apr-2002        Created * */package oracle.otnsamples.ibfbs.control;// Import Required Packagesimport javax.servlet.http.HttpServletRequest;import javax.servlet.ServletContext;import java.util.HashMap;import java.util.Iterator;/** * This Class finds the appropriate View (JSP Page) for this request. For * any request, Controller Servlet (ControllerServlet.java) takes the help of this * class to get the next view. * * This Class also helps in getting a suitable Error Page to show the Error Message. * * In the MVC Architecture, the Controller Component takes the responsibility of * controlling the entire execution flow. The View Layer, assumes the responsibility * of the representing the data whereas the Model Layer is responsible for implementing * the Business Logic. * */public class ViewManager {  // Declare Instance Variables  private ServletContext ctx;  // Data Structure to store Objects of URLMapping Class  // URLMapping Maps an Event Name with the Business Method to be invoked and  // the View to be used to display the data. See URLMapping.java for more info.    private HashMap urlMap;  // Data Structure to Store Exception Information. The exception information  // is stored in class ExceptionMapping.java  private HashMap exceptionMap;  /**   * Empty Constructor of this Class.   * @since 1.0   */  public ViewManager() {}  /**   * Method to initialize the values of Instance Variables   *   * @param ctx  Servlet Context passed to this method.   * @since 1.0   */  public void init(javax.servlet.ServletContext ctx) {    this.ctx     = ctx;    urlMap       = (HashMap) ctx.getAttribute(FBSKeys.URLMAPPINGS);    exceptionMap = (HashMap) ctx.getAttribute(FBSKeys.EXCEPTIONMAPPINGS);  }  /**   * Method to get the View (JSP Page) which acts as a Next Page for a particular   * request.   *   * @param  request HttpServletRequest Object   * @param  reqParam String representing which attribute to fetch   * @return View Name (JSP Page Name)   * @since 1.0   *   */  public String nextScreen(HttpServletRequest request, String reqParam) {    // Get the Event Name    String eventName = (String) request.getAttribute(reqParam);    if (eventName == null) {      eventName = (String) request.getSession(true).getAttribute(reqParam);    }    if (eventName == null) {      eventName = request.getParameter(reqParam);    }    // Check whether the request is from a browser or a Mobile Phone      boolean mobileBrowser = (request.getHeader("User-Agent").indexOf("Mozilla")                             == -1)                            ? true                            : false;    // If there is no event, then show treat this as FIRSTPAGE event    if ((eventName == null) || (eventName.equals(""))) {      eventName = "FIRSTPAGE";    }    // If the request is from Mobile Browser and event Name do not start with     // MOBILE Word    if ((mobileBrowser) && (!eventName.startsWith("MOBILE"))) {      eventName = "MOBILE-" + eventName;    }    // Get the URL Mapping for the Event     URLMapping u1 = (URLMapping) urlMap.get(eventName);    if (u1 == null) {       u1 = (URLMapping) urlMap.get("FIRSTPAGE");    }    // Return the Screen Name    return "/" + u1.getNextScreen();  }  /**   * Method to get the proper View (JSP Page) which displays the Error Message for   * this kind of exception.   *   * @param Throwable Exception raised by the application   * @param  request HttpServletRequest Object   * @return Exception View Name (JSP Page Name)   *   * @since 1.0   */  public String nextErrorScreen(Throwable ex, HttpServletRequest request) {    // Loop through all the exceptions in the Exception Map    Iterator it = exceptionMap.keySet().iterator();    while (it.hasNext()) {      // Get the Exception Name from the Exception Map      String exceptionName        = (String) it.next();      Class  targetExceptionClass = null;      try {        targetExceptionClass =          this.getClass().getClassLoader().loadClass(exceptionName);      } catch (ClassNotFoundException cnfe) {  // Trap Errors When Class is Not Found          System.out.println("ScreenFlowManager: Could not load exception "                           + exceptionName);      }      // check if the raised exception is a sub class of the exception in exception      // mapping      if ((targetExceptionClass != null)              && targetExceptionClass.isAssignableFrom(ex.getClass())) {        ExceptionMapping excp =          (ExceptionMapping) exceptionMap.get(exceptionName);        // Check whether the request is from mobile browser.        boolean mobileBrowser =          (request.getHeader("User-Agent").indexOf("Mozilla") == -1)          ? true          : false;        if (mobileBrowser) {          return "/" + excp.getNextMobileScreen();        }        else {          return "/" + excp.getNextWebScreen();        }      }    }    // When the error is not a generic error (mentioned in Exception.xml) but    // application specific error. Then show the error in the same page    return nextScreen(request,"CALLOUT_EVENT");  }}

⌨️ 快捷键说明

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