1 16 17 package org.apache.taglibs.xtags.util; 18 19 import javax.servlet.http.Cookie ; 20 import javax.servlet.http.HttpServletRequest ; 21 import javax.servlet.jsp.PageContext ; 22 23 import org.jaxen.VariableContext; 24 25 29 30 public class JspVariableContext implements VariableContext { 31 32 public static final String KEY_REQUEST_VARIABLE_CONTEXT = "org.apache.taglibs.xtags.jsp.VariableContext"; 33 34 35 private PageContext pageContext; 36 37 38 42 public static JspVariableContext getInstance(PageContext pageContext) { 43 JspVariableContext answer = (JspVariableContext) JspHelper.findAttribute( 44 pageContext, 45 KEY_REQUEST_VARIABLE_CONTEXT 46 ); 47 if ( answer == null ) { 48 answer = new JspVariableContext( pageContext ); 49 pageContext.setAttribute( 50 KEY_REQUEST_VARIABLE_CONTEXT, 51 answer, 52 PageContext.PAGE_SCOPE 53 ); 54 } 55 return answer; 56 } 57 58 public JspVariableContext(PageContext pageContext) { 59 this.pageContext = pageContext; 60 } 61 62 public Object getVariableValue(String name) { 63 Object answer = JspHelper.findAttribute( pageContext, name ); 64 if ( answer == null ) { 65 answer = pageContext.getRequest().getParameter( name ); 66 if ( answer == null ) { 67 answer = pageContext.getServletContext().getInitParameter( name ); 68 } 69 } 70 return answer; 71 } 72 73 public Object getVariableValue(String prefix, String name) { 74 if ( prefix != null && prefix.length() > 0 ) { 75 if ( "app".equals( prefix ) ) { 76 return pageContext.getAttribute( name, PageContext.APPLICATION_SCOPE ); 77 } 78 else if ( "session".equals( prefix ) ) { 79 return pageContext.getAttribute( name, PageContext.SESSION_SCOPE ); 80 } 81 else if ( "request".equals( prefix ) ) { 82 return pageContext.getAttribute( name, PageContext.REQUEST_SCOPE ); 83 } 84 else if ( "page".equals( prefix ) ) { 85 return pageContext.getAttribute( name, PageContext.PAGE_SCOPE ); 86 } 87 else if ( "param".equals( prefix ) ) { 88 return pageContext.getRequest().getParameter( name ); 89 } 90 else if ( "initParam".equals( prefix ) ) { 91 return pageContext.getServletContext().getInitParameter( name ); 92 } 93 else if ( "header".equals( prefix ) ) { 94 HttpServletRequest request = (HttpServletRequest ) pageContext.getRequest(); 95 return request.getHeader( name ); 96 } 97 else if ( "cookie".equals( prefix ) ) { 98 HttpServletRequest request = (HttpServletRequest ) pageContext.getRequest(); 99 Cookie [] cookies = request.getCookies(); 100 if ( cookies != null ) { 101 for ( int i = 0, size = cookies.length; i < size; i++ ) { 102 Cookie cookie = cookies[i]; 103 if ( name.equals( cookie.getName() ) ) { 104 return cookie.getValue(); 105 } 106 } 107 } 108 return null; 109 } 110 } 111 Object answer = JspHelper.findAttribute( pageContext, name ); 112 if ( answer == null ) { 113 answer = pageContext.getRequest().getParameter( name ); 114 if ( answer == null ) { 115 answer = pageContext.getServletContext().getInitParameter( name ); 116 } 117 } 118 return answer; 119 } 120 121 public Object getVariableValue(String namespaceURI, String prefix, String name) { 122 return getVariableValue(prefix, name); 123 } 124 } 125 | Popular Tags |