该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-20
java.wj 写道 你那个Main类,或者说Main servlet做的事情太多了,你应该专门写一个基类让我来用,他不做任何登录的判断,它只是解析客户端所请求的 xwl文件,而且这个main类里面好多都写死了没法扩展到比如我自己定义的xwl文件去
String webPath; String action; String type; File actionFile; String needLogin; request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); webPath = StringUtil.replace(getServletContext().getRealPath("/"), "\\", "/"); bufferToRequest(request, webPath, true); FileUtil.saveFileToRequest(request); action = request.getParameter("action"); actionFile = FileUtil.getFullFile(webPath, action); type = FileUtil.extractFileExt(action); if(actionFile == null) break MISSING_BLOCK_LABEL_424; if(type.equalsIgnoreCase("xwl")) { (new Parser(webPath, actionFile, request, response, action)).parse(); break MISSING_BLOCK_LABEL_497; } needLogin = request.getAttribute("sys.needLogin").toString(); if(!WebUtil.checkLogin(needLogin, request, response)) return; try { if(!WebUtil.userHasRight(needLogin, actionFile, webPath, request)) { response.setStatus(403); request.getRequestDispatcher("main?action=webbuilder/system/forbidden.xwl").forward(request, response); return; } } catch(Exception e) { throw new ServletException(e); } WebUtil.recordLog(request, action, 0); response.reset(); if(StringUtil.stringInList(StringUtil.split(request.getAttribute("sys.webFile").toString(), ","), type.toLowerCase()) != -1) { boolean isMark = request.getParameter("__mark") != null; try { request.getRequestDispatcher(action).forward(request, response); if(isMark) response.getWriter().print("{@ok@}"); } catch(Exception e) { String exceptType; if(isMark) exceptType = "mark"; else exceptType = request.getAttribute("sys.exceptionType").toString(); WebUtil.recordLog(request, (new StringBuilder(String.valueOf(FileUtil.extractFileName(action)))).append(":").append(WebUtil.getShortError(request, e)).toString(), 2); WebUtil.showException(exceptType, e, request, response); } } else { response.setHeader("content-length", Long.toString(actionFile.length())); response.setHeader("content-type", "application/force-download"); response.setHeader("Content-disposition", (new StringBuilder("attachment;filename=")).append(WebUtil.getFileName(actionFile.getName())).toString()); FileInputStream inputStream = new FileInputStream(actionFile); SysUtil.inputStreamToOutputStream(inputStream, response.getOutputStream()); inputStream.close(); } break MISSING_BLOCK_LABEL_497; if(StringUtil.isEmpty(request.getQueryString())) { response.sendRedirect((String)request.getAttribute("sys.portal")); } else { response.setStatus(404); request.getRequestDispatcher("main?action=webbuilder/system/invalid.xwl").forward(request, response); } 希望能提供一个只解析swl文件的servlet 可以让我方便的配置到web.xml中去 兄弟,main干的作用就一件事,调用parser类解析web文件,主要任务就是完成解析xwl文件。 你看代码中如果传入的action是一个xwl文件,就一句 if (type.equalsIgnoreCase("xwl")) new Parser(webPath, actionFile, request, response, action).parse(); 其它的代码为处理诸如jsp,php,aspx,html等就forward,其它格式的就形成下载等。你可以把你的jsp等放到webbuilder/application下在,在portal中能自动出来,另外可以使用webbuilder带的explorer来配置jsp等显示的名称、图标、权限等,多余的代码主要就是为非xwl格式的文件解析用。你可以试试main?action=a.xwl或main?action=b.html或main?action=c.jsp。 |
|
返回顶楼 | |
发表时间:2010-01-20
chenjie100 写道 java.wj 写道 你那个Main类,或者说Main servlet做的事情太多了,你应该专门写一个基类让我来用,他不做任何登录的判断,它只是解析客户端所请求的 xwl文件,而且这个main类里面好多都写死了没法扩展到比如我自己定义的xwl文件去
String webPath; String action; String type; File actionFile; String needLogin; request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); webPath = StringUtil.replace(getServletContext().getRealPath("/"), "\\", "/"); bufferToRequest(request, webPath, true); FileUtil.saveFileToRequest(request); action = request.getParameter("action"); actionFile = FileUtil.getFullFile(webPath, action); type = FileUtil.extractFileExt(action); if(actionFile == null) break MISSING_BLOCK_LABEL_424; if(type.equalsIgnoreCase("xwl")) { (new Parser(webPath, actionFile, request, response, action)).parse(); break MISSING_BLOCK_LABEL_497; } needLogin = request.getAttribute("sys.needLogin").toString(); if(!WebUtil.checkLogin(needLogin, request, response)) return; try { if(!WebUtil.userHasRight(needLogin, actionFile, webPath, request)) { response.setStatus(403); request.getRequestDispatcher("main?action=webbuilder/system/forbidden.xwl").forward(request, response); return; } } catch(Exception e) { throw new ServletException(e); } WebUtil.recordLog(request, action, 0); response.reset(); if(StringUtil.stringInList(StringUtil.split(request.getAttribute("sys.webFile").toString(), ","), type.toLowerCase()) != -1) { boolean isMark = request.getParameter("__mark") != null; try { request.getRequestDispatcher(action).forward(request, response); if(isMark) response.getWriter().print("{@ok@}"); } catch(Exception e) { String exceptType; if(isMark) exceptType = "mark"; else exceptType = request.getAttribute("sys.exceptionType").toString(); WebUtil.recordLog(request, (new StringBuilder(String.valueOf(FileUtil.extractFileName(action)))).append(":").append(WebUtil.getShortError(request, e)).toString(), 2); WebUtil.showException(exceptType, e, request, response); } } else { response.setHeader("content-length", Long.toString(actionFile.length())); response.setHeader("content-type", "application/force-download"); response.setHeader("Content-disposition", (new StringBuilder("attachment;filename=")).append(WebUtil.getFileName(actionFile.getName())).toString()); FileInputStream inputStream = new FileInputStream(actionFile); SysUtil.inputStreamToOutputStream(inputStream, response.getOutputStream()); inputStream.close(); } break MISSING_BLOCK_LABEL_497; if(StringUtil.isEmpty(request.getQueryString())) { response.sendRedirect((String)request.getAttribute("sys.portal")); } else { response.setStatus(404); request.getRequestDispatcher("main?action=webbuilder/system/invalid.xwl").forward(request, response); } 希望能提供一个只解析swl文件的servlet 可以让我方便的配置到web.xml中去 兄弟,main干的作用就一件事,调用parser类解析web文件,主要任务就是完成解析xwl文件。 你看代码中如果传入的action是一个xwl文件,就一句 if (type.equalsIgnoreCase("xwl")) new Parser(webPath, actionFile, request, response, action).parse(); 其它的代码为处理诸如jsp,php,aspx,html等就forward,其它格式的就形成下载等。你可以把你的jsp等放到webbuilder/application下在,在portal中能自动出来,另外可以使用webbuilder带的explorer来配置jsp等显示的名称、图标、权限等,多余的代码主要就是为非xwl格式的文件解析用。你可以试试main?action=a.xwl或main?action=b.html或main?action=c.jsp。这里登录判断是为非xwl文件,如果需要取消登录,你可设置system/main.xml下的needLogin=false,logType=none等来配置的 |
|
返回顶楼 | |
发表时间:2010-01-20
看了说明,赞。。
安装过程出现错误“Error1606.Could not access network location 0\.” |
|
返回顶楼 | |
发表时间:2010-01-20
biaowen 写道 看了说明,赞。。
安装过程出现错误“Error1606.Could not access network location 0\.” 这个错误从来没遇到过啊。可能是Norton引起的InstallShield错误。具体原因你可以参考Microsoft网站的回答: http://support.microsoft.com/kb/315352/zh-cn |
|
返回顶楼 | |
发表时间:2010-01-20
这个。。。。就是用xml文件来代替js对吧?在运行时会自动生成js。跟前几天看到的基本一样。所谓的可视化..只是利用绝对布局来进行布局。我觉得这还不如直接js的直接。
|
|
返回顶楼 | |
发表时间:2010-01-20
fireflyc 写道 这个。。。。就是用xml文件来代替js对吧?在运行时会自动生成js。跟前几天看到的基本一样。所谓的可视化..只是利用绝对布局来进行布局。我觉得这还不如直接js的直接。
你仅仅是看到了点皮毛而已。 |
|
返回顶楼 | |
发表时间:2010-01-20
难以想象这是一个人做的?要是完善了,多少人得失业?
|
|
返回顶楼 | |
发表时间:2010-01-21
kobevaliant 写道 很强,很难想象是一个人的作品
没错,就是我一个人写的。 |
|
返回顶楼 | |
发表时间:2010-01-21
看上去不错的。思路挺好
比较适合企业信息系统建设 |
|
返回顶楼 | |
发表时间:2010-01-22
我看了demo之后发现这个工具不仅仅是个界面设计工具,还将sql直接做在界面里,这方面是不是有点倒退了呢?
我指望它只是个view层,可以调用比如spring ioc里的业务层对象。 |
|
返回顶楼 | |