[Tbase-cvs] tbase-runtime/src/org/tbase/servlet TBaseDispatcher.java,1.3,1.4
Status: Alpha
Brought to you by:
ron_bakker
From: Ron B. <ron...@us...> - 2006-03-26 12:11:10
|
Update of /cvsroot/tbase/tbase-runtime/src/org/tbase/servlet In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5625/src/org/tbase/servlet Modified Files: TBaseDispatcher.java Log Message: Adding arguments and setting values in request scope Index: TBaseDispatcher.java =================================================================== RCS file: /cvsroot/tbase/tbase-runtime/src/org/tbase/servlet/TBaseDispatcher.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TBaseDispatcher.java 23 Mar 2006 11:31:16 -0000 1.3 --- TBaseDispatcher.java 26 Mar 2006 12:11:01 -0000 1.4 *************** *** 30,33 **** --- 30,34 ---- import org.tbase.html.*; import java.net.*; + import java.util.*; /** *************** *** 182,185 **** --- 183,213 ---- } + private String _getTemplate(String templatename, ArrayList<String> arguments) + { + String usetemplate = templatename; + boolean exist = false; + while (!exist) + { + File tfile = new File(usetemplate); + exist = tfile.exists(); + + if (exist) + { + if (tfile.isDirectory()) + usetemplate = usetemplate + "/index.tb"; + } + else + { + String[] fragments = usetemplate.split("/"); + arguments.add(fragments[fragments.length-1]); + usetemplate = ""; + for (int i=0; i<fragments.length-1; i++) + usetemplate = usetemplate + "/" + fragments[i]; + } + } + + return usetemplate; + } + private void doRequest(HttpServletRequest request, HttpServletResponse response, long requesttype) throws ServletException, IOException *************** *** 231,239 **** String templatename = this.getServletContext().getRealPath("")+localfile; - // is this a file or directory? ! File tfile = new File(templatename); ! if (tfile.isDirectory()) ! templatename = templatename + "/index.tb"; TemplateParser templateparser = getParser(templatename); --- 259,275 ---- String templatename = this.getServletContext().getRealPath("")+localfile; // is this a file or directory? ! ! ArrayList<String> args = new ArrayList<String>(); ! templatename = _getTemplate(templatename, args); ! ! ArrayList<String> arguments = new ArrayList<String>(); ! for (int i=args.size()-1; i>-1; i--) ! { ! arguments.add(args.get(i)); ! } ! ! request.setAttribute("requestType", new Long(requesttype)); ! request.setAttribute("requestArguments", arguments); TemplateParser templateparser = getParser(templatename); *************** *** 241,245 **** response.getWriter().println(getError(ERR_NOPARSER)); else ! response.getWriter().println(templateparser.parseTemplate(templatename, request, response, requesttype)); } --- 277,281 ---- response.getWriter().println(getError(ERR_NOPARSER)); else ! response.getWriter().println(templateparser.parseTemplate(templatename, request, response)); } |