tons of changes
[org.ibex.xt.git] / src / org / ibex / xt / Servlet.java
index 7a2b58f..0265e23 100644 (file)
@@ -54,24 +54,26 @@ public class Servlet extends HttpServlet {
     public class ServletScope extends JSSubProperties {
         HttpServletRequest request;
         HttpServletResponse response;
+        HttpSession session;
         ServletContext cx;
         public String getRealPath(String s) { return cx.getRealPath(s); }
         public ServletScope(ServletRequest request, ServletResponse response, ServletContext cx) {
             super();
             this.request = (HttpServletRequest)request;
             this.response = (HttpServletResponse)response;
+            this.session = this.request.getSession();
             this.cx = cx;
         }
 
-        // FIXME: setattributes
-        //#repeat params/cookies/requestHeader/attributes \
-        //        getParameter/getCookie/getHeader/getAttribute \
-        //        getParameterNames/getCookieNames/getHeaderNames/getAttributeNames \
-        //        request/request/request/session/response \
-        //        setParameter/setCookie/setHeader/setAttribute
+        // FIXME: setattributes, cookies
+        //#repeat params/requestHeader/attributes \
+        //        getParameter/getHeader/getAttribute \
+        //        getParameterNames/getHeaderNames/getAttributeNames \
+        //        request/request/session/response \
+        //        setAttribute/setAttribute/setAttribute
         private JS params = new JS.Obj() {
                 public JS get(JS key) throws JSExn { return JSU.S(request.getParameter(JSU.toString(key)).toString()); }
-                public void put(JS key, JS val) throws JSExn { request.setParameter(JSU.toString(key), JSU.toString(val)); }
+                public void put(JS key, JS val) throws JSExn { request.setAttribute(JSU.toString(key), JSU.toString(val)); }
                 public Enumeration keys() throws JSExn {
                     return new JS.Enumeration.JavaStringEnumeration(request.getParameterNames()); }
             };
@@ -92,9 +94,9 @@ public class Servlet extends HttpServlet {
             case "request.ssl":           return JSU.B(request.isSecure());
             case "request.path":          return JSU.S(request.getPathInfo());
             case "response":              return SUBPROPERTY;
-            case "response.header":       return responseHeader;
+            case "form":                  return SUBPROPERTY;
+            case "form.fields":           return currentForm.fields();
             case "session":               return SUBPROPERTY;
-            case "session.attr":          return sessionAttributes;
             case "session.created":       return new JSDate(request.getSession(true).getCreationTime());
             case "session.accessed":      return new JSDate(request.getSession(true).getLastAccessedTime());
             case "session.invalidate":    return METHOD;
@@ -103,11 +105,13 @@ public class Servlet extends HttpServlet {
             case "context":               return SUBPROPERTY;
             case "context.list":          return METHOD;
             case "params":                return params;
-            case "cookie":                return cookies;
             //#end
+                // cookie, responseheader needed, session.attributes
             return null;
         }
 
+        Form currentForm = null;
+
         public void put(JS key, JS val) throws JSExn {
             try {
             //#switch(JSU.toString(key))