进入Template Engines 使用template engine来代替通常目的的JSP, 接下去的设计将变得简单,语法更简单,出错信息更易读,工具也更用户化。 一些公司已经做了这样的引擎,最著名的可能是WebMacro (http://webmacro.org, from Semiotek),他们的引擎是免费的。 开发者应该明了,选定一个template engine来取代JSP提供了这么一些技术优势,这也正是jsp的一些不足之处: 问题 #1: Java代码太模板化了 虽然被认为是不好的设计,JSP仍试图将Java代码加入web页面。这有些象是Java曾经做的,即对C++的简化修改,template engines也通过将jsp中的较低层的源码移去来使之简化。Template engines实行了更好的设计。 问题 #2: 要求Java代码 在JSP页中要求写一些Java代码。例如,假设某页要决定当前web应用中根的上下文从而导向其主页, 在JSP中最好使用如下Java代码: <a href="<%= request.getContextPath() %>/index.html">Home page</a> 你可以试图避免 Java代码,而使用 <jsp:getProperty> 标记但这将给你六下难以阅读的字串: <a href="<jsp:getProperty name="request" property="contextPath"/>/index.html">HomePage</a> 使用template engine则没有Java代码和难看的语法。这里是同样要求下在WebMacro中的写法: <a href="$Request.ContextPath;/index.html">Home page</a> 在WebMacro中, ContextPath 作为 $Request变量的一个属性,使用类似Perl的语法。其它er template engines使用了其它的语法类型。 再看另 一个例子,假设一个高级的"view"需要设定一个cookie来记录用户缺省的颜色配置 -- 这种任务看起来大概只能由view而不是servlet控制器来完成。在JSP中要有这样的Java代码: <% Cookie c = new Cookie("colorscheme", "blue"); response.addCookie(c); %> 在WebMacro中则没有Java代码: #set $Cookie.colorscheme = "blue" 作为最后一个离子,假如又要重新找回原来的cookie中的颜色配置。对于JSP,我们可以认为也有一个相应的工具类来提供帮助,因为用getCookies()直接做这样低层的会变得可笑而且困难。在JSP中: <% String colorscheme = ServletUtils.getCookie(request, "colorscheme"); %> 在WebMacro中没有对工具类的需要,通常是:$Cookie.colorscheme.Value .对写jsp的图形艺术师,又是哪一种语法更容易学习呢? JSP 1.1 引入了自定义标记(custom tags)允许任意的和HTML相似的标记在JSP页面中在后台执行Java代码,这将具有一定的价值,但前提是要有一个广泛知晓的,全功能的,可以免费得到的,标准化的标记库。目前还没有出现这样的标记库。 |
闂傚倸鍊峰ù鍥Υ閳ь剟鏌涚€n偅宕岄柡宀€鍠栭、娑樷堪閸愮偓姣夋俊鐐€戦崕鏌ュ垂閸ф钃熼柣鏃囥€€閸嬫挸鈽夊▍顓т簼閹便劑宕惰閺€鑺ャ亜閺囩偞顥為悗姘炬嫹闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏缂傚倷璁查弲鐘诲蓟閻旂⒈鏁嶆繝濠傚枤閺嗩厼顪冮妶鍐ㄥ姷闁瑰嚖鎷�>>
0正在阅读:困扰JSP的一些问题与解决方法困扰JSP的一些问题与解决方法
2004-04-02 10:19
出处:eNet硅谷动力
责任编辑:sdq
键盘也能翻页,试试“← →”键