1 28 29 package com.caucho.jsf.application; 30 31 import java.io.*; 32 import java.util.*; 33 34 import javax.faces.*; 35 import javax.faces.application.*; 36 import javax.faces.component.*; 37 import javax.faces.context.*; 38 import javax.faces.render.*; 39 40 import javax.servlet.*; 41 42 public class JspViewHandler extends ViewHandler 43 { 44 public Locale calculateLocale(FacesContext context) 45 { 46 throw new UnsupportedOperationException (); 47 } 48 49 public String calculateRenderKitId(FacesContext context) 50 { 51 return RenderKitFactory.HTML_BASIC_RENDER_KIT; 52 } 53 54 public UIViewRoot createView(FacesContext context, 55 String viewId) 56 { 57 if (viewId == null) { 58 ExternalContext extContext = context.getExternalContext(); 59 60 String servletPath = extContext.getRequestServletPath(); 61 String pathInfo = extContext.getRequestPathInfo(); 62 63 String path; 64 int dot; 65 66 if (servletPath != null 67 && (dot = servletPath.lastIndexOf('.')) > 0 68 && servletPath.lastIndexOf('/') < dot) { 69 71 viewId = servletPath.substring(0, dot) + ".jsp"; 72 } 73 else if (pathInfo != null) { 74 dot = pathInfo.lastIndexOf('.'); 75 76 if (dot > 0) 77 viewId = pathInfo.substring(0, dot) + ".jsp"; 78 else 79 viewId = pathInfo + ".jsp"; 80 } 81 else 82 viewId = ""; 83 } 84 85 UIViewRoot viewRoot = new UIViewRoot(); 86 87 viewRoot.setViewId(viewId); 88 viewRoot.setRenderKitId(calculateRenderKitId(context)); 89 90 return viewRoot; 91 } 92 93 public String getActionURL(FacesContext context, 94 String viewId) 95 { 96 throw new UnsupportedOperationException (); 97 } 98 99 public String getResourceURL(FacesContext context, 100 String path) 101 { 102 throw new UnsupportedOperationException (); 103 } 104 105 public void renderView(FacesContext context, 106 UIViewRoot viewToRender) 107 throws IOException, FacesException 108 { 109 String viewId = viewToRender.getViewId(); 110 111 ExternalContext extContext = context.getExternalContext(); 112 113 ((javax.servlet.http.HttpServletResponse ) extContext.getResponse()).setContentType("text/html"); 114 115 extContext.dispatch(viewId); 116 117 126 } 127 128 public UIViewRoot restoreView(FacesContext context, 129 String viewId) 130 throws FacesException 131 { 132 return null; 133 } 134 135 public void writeState(FacesContext context) 136 throws IOException 137 { 138 } 139 140 public String toString() 141 { 142 return "JspViewHandler[]"; 143 } 144 } 145 | Popular Tags |