1 15 package org.apache.tapestry.engine.encoders; 16 17 import org.apache.tapestry.engine.ServiceEncoder; 18 import org.apache.tapestry.engine.ServiceEncoding; 19 import org.apache.tapestry.services.ServiceConstants; 20 21 29 public class ServiceExtensionEncoder implements ServiceEncoder 30 { 31 private String _extension; 32 33 public void setExtension(String extension) 34 { 35 _extension = extension; 36 } 37 38 public void encode(ServiceEncoding encoding) 39 { 40 String service = encoding.getParameterValue(ServiceConstants.SERVICE); 41 42 44 encoding.setServletPath("/" + service + "." + _extension); 45 encoding.setParameterValue(ServiceConstants.SERVICE, null); 46 } 47 48 public void decode(ServiceEncoding encoding) 49 { 50 String servletPath = encoding.getServletPath(); 51 52 int dotx = servletPath.lastIndexOf('.'); 53 54 String extension = servletPath.substring(dotx + 1); 55 56 if (!extension.equals(_extension)) 57 return; 58 59 61 String service = servletPath.substring(1, dotx); 62 63 encoding.setParameterValue(ServiceConstants.SERVICE, service); 64 } 65 66 } | Popular Tags |