求一下下面这张图的这个easyui登录界面模板的java模板,不用背景

Java开源模板引擎分类列表
Java开源模板引擎
&&共2页『&&1&&&&』
&Velocity&Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。 【 :Velocity在Eclipse平台下的一个辅助开发插件】 &FreeMarker&FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。【与:Eclipse平台下的辅助开发工具】 &Jamon&Jamon是一个Java文本模板引擎,用于生成动态HTML, XML,或任何基于文本的内容。它有一个丰富的功能集,支持封装,参数化,功能分解,表达逻辑重用。模板声明它们要求生成的参数,包括动态模板内容("fragments"),并被翻译成带有公有方法的Java类,它的符号反映了在模板中声明的参数。 &JDynamiTe&JDynamiTe是一个把PHP模板技术移植到Java的一个开源项目。JDynamiTe模板用注释(BEGIN-END)标记动态块,用{}标记占位变量。JDynamiTe模板不包含任何逻辑,是“所见即所得”的模板技术,能够在普通的HTML浏览器或编辑器正确显示。
&JByte&JByte基于java的模板引擎。它通常用于把Jsp或Servlet转换成HTML,也可以转换成其它格式比如:XML,RTF,WML,e-mail text,原代码, 配置文件。 &Tea&Tea Trove 是一个组开放源代码项目(Tea,TeaServlet,Kettle,BeanDoc,Trove)的集合。由Walt Disney Internet小组开发,它这些技术成功运用在许多著名的网站上如, ,
和 . 其中的Tea是一个简单又强大的模板语言。它通常使用TeaServlet来产生动态页面。 &Jxp&Jxp(Java scripted page)包含一个Java脚本处理器和一个模板引擎,它支持同时具备文本和Java代码的模板文件。它包含一个剖析器和一个结构处理器,剖析器用于将脚本内容转化为特定的结构,结构处理器将处理这些特定的结构内容转换为常规代码,并通过API函数在产品中输出。
&StringTemplate&StringTemplate一个可以生成原代码,web页面,emails和其它任何需要有格式的文本输出。StringTemplate已应用在为与antlr.org网站产生web页面。 &Better Templates for Everybody&一个让数据知道如何插入到模板中适当的位置,模板可以从静态的文件或Java servlets来创建。 &Canvas&Canvas是一个基于Groovy脚本语言模板生成器。它使用类似于Velocity Java API来绑定变量并允许在你的模板中使用Groovy脚本表达式。 &Guglhupf XTE&Guglhupf XTE(XML Transformation Engine:XML转换引擎) 是一组用来转换XML文件的工具。它提供了一种比XSLT更简单的方式来转换XML。XTE不同于XSLT与Velocity这样的XML转换工具,它们都用特殊的语言来处理XML文件输入,然后把目标数据作为输出陈述.而XTE是以相反的方式进行它的模板是已经写在输出格式上的,而输入处理命令则是写在特殊的注释块中.它的模板文件采用Java代码编写. &WebMacro&WebMacro是一种Java开源的模板语言。对于表现web页面,它比JSP,PHP,与ASP效率更高。WebMacro是一些大网站后台的页面生成技术。 &Viento&Viento是一个用Java开发的模板语言。它在语句构成上很多情形下有点类于Velocity 。 &Jostraca&Jostraca是一个代码生成工具包。它的模板可使用类似于JSP的语法来编写。是一个把该代码生成器集成到Eclipse v3.1.2+中的插件。 &LSP&LSP是一种基于XML技术的高级Web模板语言。LSP提供强大和易于使用视图逻辑,但能够保持商业逻辑与模板相脱离。LSP直接编译成Java字节码以便提高执行效率。 &JLoom&JLoom是一个采用类似于JSP语法的模板引擎。参数可以是任何Java类型,甚至是泛型(generic)。JLoom还提供一个Eclipse插件来辅助开发。 &MiniTemplator&MiniTemplator是一个简洁的模板引擎。定义模板文件中的变量和块的语法非常简单,支持块嵌套块。对于MiniTemplator的使用,其提供良好、完整文档支持。 &CommonTemplate&CommonTemplate是一个模板引擎,用于解释CTL模板语言,可在多种运行时环境下使用;其主要目标是作为JSP,ASP.Net等的替代方案,以保证用简单的语法,良好的结构,不混杂业务逻辑的方式书写页面;也可以作为动态文本生成工具,生成HTML、XML、Mail、Java源代码或其它文本等。二、CommonTemplate特性:1.只有一个语法规则:$指令名{表达式},使用更简单,更统一。2.支持语法外套,可以在Dreamwear下正常使用WYSWYG,并且语法外套也是可扩展的。3.微核理念,高度可扩展,除了核心API,其它逻辑相关处理都是外置的,包括所有指令及表达式,标准的 for, if, else 等指令,以及 + - * / 等表达式,均可被替换。4.使用主控迭代器模式替代传统的被动访问器模式,引擎只负责将模板解析成指令树,其它所有处理均由扩展指令自身完成,给扩展指令以最大的控制权。(类似于StAX与SAX的区别)5.对已有不可变类(String,Number,Date等),属性扩展,采用open class思想。(类似javascript的prototype)6.支持宏引用及模板继承,更有利于模板组件化。7.内置的国际化支持,国际化信息处理更方便。8.多种优化措施,性能更优:&&&&(1) 采用针对特定语法写的低级专有DFA解析器解析,试验表明比使用通用抽象的BNF语法体系解析(Java中一般用JavaCC或AntLR)要快,因为BNF为了通用,考虑了太多因素,导致其效率降低,当然,BNF在处理复杂语法(比如要解析C/C++/Java等语法时)很有优势,但CommonTemplate的语法非常简单且统一,所以使用专有的低级解析器是比较好的选择。&&&&(2) 解析结果被表示成一个线程安全(不变类级)的指令树,单个实例可以在多线程中任意重复使用,避免使用重复解析或克隆等性能损耗。&&&&(3) 解析结果可以在内存中缓存起来,以减少解析次数及IO量,并且缓存策略是可扩展的。(已内置实现了NONE, STRONG, SOFT, FIFO, LRU, MRU, OSCACHE, EHCACHE等缓存策略)
&RTFTemplate&RTFTemplate是一个RTF to RTF引擎。它能够将RTF模板与来自Java对象的数据相结合,生成新的RTF文档。 &Jtpl&Jtpl是一个用于Java Servlet的模板引擎,利用它能够实现HTML代码与Java代码分开存储。与其它拥有复杂语法的模板引擎相比,Jtpl使用一种非常简单的模板语法。所有处理过程(循环,判断等逻辑)和变量都在Java代码中实现。便于更好地将布局与代码相分离,而且不需要学习新的复杂语法。 &VMC Injection&VMC Injection是一个Java开源模板引擎,利用它可以很容易将任何Java数据结构(如:JDBBC、POJO、HashMap等)注入到文本(HTML/XML等)模板中。 &Japid&Japid-Play是一个拥有与Java硬编码相同性能和速度的Java板模板引擎。模板语法与Play! Web开发框架模板语言相似。Japid是一个通用的模板引擎,适用于任何Java应用程序来渲染任意Java对象。此外它还提供一个专门用于Play!框架的适配器。Japid主要目标是用在基于Play!开发并且拥有大流量的网站中。为了达到这个目标,Japid将基于html的标签文件转换成干净的Java源代码以便让渲染工作能够达到接近采用Java硬编码的速度。Japid其它高级特性包括:拥有类似于site-mesh布局功能,可以使用标签(Tag),模板可以有层级关系,内容缓存,服务器端Include等。使用这些高级功能并不会降低Japid的性能。 &Hapax&Hapax是一个简单,但强大的文本模板引擎,适用来在 Java代码中构建文本输出。模板语法和Google的ctemplate相似。 &Xtempore&Xtempore是一个轻级量、模块化、强大基于XML的模板语言和工具集。用于将一个Java对象模型结合XML文档模板生成另一个新的XML文档。
&Thymeleaf&Thymeleaf是一个XML/XHTML/HTML5模板引擎,用于展示数据和生成基于文本的文件。它还提供一个模块用于与Spring MVC集成作为视图层使用。
&smarty4j&smarty4j是一个smarty for java的模板引擎,该引擎是将smarty模板从php上移植过来,需要asm-3.0.jar。
&Google XML Pages&GXP是一个模板系统用于生成XML/SGML标签(大部分经常是HTML)。
支持多种语言(包括Java&; C++开发中)。
支持运行期重新编译。
编译时类型检查和部分标记验证。
类型自动识别,减少了XSS漏洞的机会
易于使用的国际化支持
方便的参数传递/模块化系统
非常轻量的运行系统
&Cambridge &Cambridge是一个用于在Java程序中生成html/xml标签的模板引擎。 它拥有高度可扩展和高性能的特点。
Cambridge模板是纯html/xml文档,因此可以直接在浏览器中查看或在其它Html编辑器中可视化编辑而不会产生错误。
Cambridge可以在独立的Java程序中使用,也可以与Servlets和其它流行Web框架如:Spring Mvc、Struts, Play Framework、JAX-RS等集成使用。
&Aluminum&Aluminum是一个强大和灵活的模板引擎。它可用于生成文档,但还可以用于做更多复杂的任务。Aluminum可以单独使用,也可以在servlet环境中使用。
&Django模板语言的JAVA移植版 Jangod&Jangod是一个Java模板引擎,一种语法类似于的模板语言。为了凸显JAVA特性,故把“D”拉到后面,取名Jangod。
内建常用标签:
Extends 当前模板扩展的父模板
Block 模板继承的可替代单元
Include 载入其它模板作为本模板的一个片段
If…else 条件判断逻辑求值
For 按特定的顺序循环一个数据集合
Cycle 轮流输出一组变量的其中一个
Ifchanged 检查变量当前值与上次存储的值是否发生变化
Set 把一个语法运算结果保存到一个新的变量中
内建过滤器:
Default 设置空值的默认输出内容
Contain 集合或字符串是否包含某个元素或子串
Length 取集合元素个数或字符串长度
Reverse 倒序排列集合元素(如果集合有序的)
Random 从集合中随机取一个元素
Equal 逻辑相等判断
And 逻辑与运算
Or 逻辑或运算
Not 真假值取反
Date 格式化时间变量
Abs 取变量的绝对值
Divisible 判断变量是否被整除
Add 进行变量的加法运算
Multiply 进行变量的乘法运算
Divide 进行变量的除法运算
Escape html特殊字符转义
Lower 把字符串都转换成小写。
Upper 把字符串都转换成大写
Truncate 按一定长度截取字符串
Cut 去除字符串中的特定子串
引擎特点:
智能的强容错模板解析
巧妙使用过滤器处理各种复杂的语法运算
各种特性的数据容器
自定义标签和过滤器
Django是一个开放源代码的Web应用框架,由写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。
相关文档:
&&&共2页『&&1&&&&』
&&相关经验 ->
&&相关文档 ->
&&相关资讯 ->
&&相关代码 ->君,已阅读到文档的结尾了呢~~
JAVA课程设计模板
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
JAVA课程设计模板
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Javashop模板解析机制 -
- ITeye技术网站
博客分类:
Javashop页面的显示由Javashop模板引擎解析,模板解析机制包含两个部分:请求URL-模板文件应射和模板解析显示。
每一次页面显示都会对应一次请求,一个请求就会对应一个URL,如:/test.html,
那么我们的模板解析就由这个URL开始,这个URL可能会对应我们的一个模板文件,如:test.html。
首先我们要建立这种URL和模板文件的对应关系(也就是建立了一个HTTP请求和模板文件的对应关系),也可以称为URL-模板文件应射,通过如下步骤建立URL-模板文件应射:
用开发者角色()登录后台:点击开发者-&工具-&URL映射
点击新增按钮:
如上图所示url和模板文件分别输入/test.html
点击保存新增一条记录,这样我们便建立了一个由/test.html的url至/test.html模板文件的映射
首先我们要确认我们当前模板所在的目录,登录后台,点击页面设置-》主题管理-》前台主题:
由上图圈红部分可以看出当前模板目录为default,即/themes/default (“/”代表Javashop部署到web服务器的根目录),
我们在此目录中建立一个模板文件,名为test.html,并键入“hello world!”,起动web容器(如tomcat),
访问http://ip:端口号/虚拟目录/test.html,效果如下图:
模板解析引擎根据 http://localhost:8081/test.html
找到当前模板/themes/default/test.html,并显示出此文件的内容。
经过上述章节的讲解,我们学习到如何显示一个模板的内容,将下来我们将了解到如何展示网店的数据,如商品、商品分类等,展示这些数据需要借助“挂件”。
我们将一个页面划分为一块块的“挂件区域”,如下图所示:
挂件的作用就是在模板的相应位置输出一段HTML,这样,Javashop的一个页面就是由多个挂件HTML片段组合而成的。
接下来我们具体讲解如何使用一个挂件,首先我们在widgets.xml中定义在一模板文件中要含有哪些挂件,
widgets.xml的位置
widgets.xml位于当前模板根目录下,如:/themes/default/widgets.xml,如果不存在需要手工建立一个。
我们以“商品列表挂件”为例来讲解,“商品列表挂件”的作用是输入我们指定的几个商品信息,如下图所示:
他的挂件ID是goods_list ,假设在我们的test.html中只有这一个挂件,那么widgets.xml中的配置为:
&?xml version="1.0" encoding="UTF-8" standalone="no"?&
&page id="/test.html"&
&!-- 声明模板文件节点 --&
&widget id="cat1_goods"&
&!--定义挂件的id,这个id将会在模板文件中使用 --&
&type&goods_list&/type& &!--对应挂件id,这里使用“商品列表挂件” --&
&term&{catid:'1'}&/term& &!-- 指定显示分类id为1下面的商品--&
&setting&{type:'default'}&/setting& &!--指定为默认配置--&
&/widgets&
上述挂件配置中type必须指定为挂件的ID其它参数和具体的挂件相关,可参考“商品列表挂件”。
接下来在模板文件test.html中输入” ${widget_cat1_goods}”其中标红的部分为在widgets.xml中定义的挂件id,重新访问test.html,效果图如下:
上图内容为挂件默认的HTML结构,因为没有使用样式看起来比较丑陋,下面我们介绍如何自定义这个挂件的HTML结构,
通过指定挂件的 custom_page和folder 参数我们可以让挂件输入自定义的HTML,如:
&?xml version="1.0" encoding="UTF-8" standalone="no"?&
&page id="/test.html"&
&widget id="cat1_goods"&
&type&goods_list&/type&
&term&{catid:'1'}&/term&
&setting&{type:'default'}&/setting&
&custom_page&cat1_goods&/custom_page&?&!--指定挂件页面名称,扩展名默认为.html--&
&folder&widget_html&/folder& ?&!-- 指定挂件页面所在目录 --&
&/widgets&
这样我们必须建立/themes/default/widget_html目录,
并在目录中建立cat1_goods.html文件,在文件中键入:“这是自定义挂件的内容”,
重新访问test.html,效果如下:
如果出现乱码,请确认建立的挂件页面文件格式是否为UTF-8。
上述章节的讲解,我们可以实现自定义挂件的HTML,接下来我们通过挂件变量来输出的商品、分类等网店数据。
每个挂件能够输出什么数据、使用哪些变量都是相关挂件定义的,需要参考相应的挂件说明.挂件页面使用Freemark解析的,所以使用Freemarker语法。
商品列表挂件可以使用的变量是名为“goodsList”的商品列表变量,
此列表中每一行是一个商品数据,详细请参考“商品列表挂件说明”,我们可以通过如下的代码来循环输出商品信息:
&#list goodsList as goods&
&li&名称:${goods.name}--价格:${goods.price}&/li&
重新访问/test.html效果图下:
挂件的通用参数是指:适用于任何挂件的参数。
在上述章节中我们已经使用了两个挂件的通用参数:
还有一些其它的通用挂件参数,
在javashop模板解析机制中存在几个特殊的页面分别为:共用页面、默认页面、会员中心页面。
共用页面在widgets.xml中体现为id为common的page节点,在执行任何页面时都会执行此节点配置的挂件
通过这样的机制可以使现一些公用页头、页尾共用信息的解析显示,如SEO信息、购物车条、会员信息条等。
&page id="common"&
&widget id="header"&
&type&header&/type&
&widget id="member_bar"&
&type&member_login_bar&/type&
&custom_page&login_bar&/custom_page&
&folder&member&/folder&
如上代码所示,在访问任何页面时都会执行common节点中声明的header挂件和member_bar挂件,相应的也可以在任何页面使用挂件输出的html或变量。注意:实际上不存在common这个模板页面。
一般地,我们会单独声明一个header.html,并在此页面中输出我们需要的共用挂件html,并在其它页面通过include指令包含此页面,这样使我们模板看起来更加清晰,也更易于维护。
在我们的网站中,会有大量简单的、页面结构相同的页面,如为每个页面去制作模板会变得冗余而重复。
所以我们规定了一个id为"/default.html"的特殊页面节点,他看起来像下面这个样子:
&page id="/default.html"&
&widget id="goodscat"&
&type&goods_cat&/type&
&folder&common&/folder&
&custom_page&goodscat&/custom_page&
&widget id="/logout.html"&
&type&member_logout&/type&
&widget id="/memberemailcheck.html"&
&type&member_email_check&/type&
&widget id="/findpassword.html"&
&type&member_findpassword&/type&
&folder&member&/folder&
&custom_page&find_password&/custom_page&
&widget id="/modifypassword.html"&
&type&find_modify_password&/type&
&folder&member&/folder&
&custom_page&modify_password&/custom_page&
这个节点中的挂件配置特殊地方是每个挂件的id是一个url(准确的说是一个url正则表达式,如可以是article-(\d).html)
上述配置我们应该建立如下的URL映射:
即:这些url统一映射到/default.html这个模板。
这样在访问某个url时,如:/findpassword.html,会解析/default.html这个节点中的id="/findpassword.html"的挂件
那么我们在/default.html该如何输出挂件的html呢?使用固定标记:${widget_main},如我们的default.html代码示例 :
&div id="goods_cat_wrapper"&
${widget_goodscat} &!--输出商品分类挂件内容 --&
&div id="content_wrapper"&
${widget_main} &!--输出相应挂件的内容 --&
如上述代码所示,${widget_main}会输出findpassword挂件的内容,同时id为goodscat的挂件也会被解析,所以可以通过${widget_goodscat}输出相应的html。其它以"/"开头的不会被解析,id以"/"开头的挂件同时只会解析一个,即匹配了url的那个。
还有一个特殊的页面是会员中心页面,和默认页面类似的,他负责显示所有会员中心的页面,因为会员中心页面的结构也是非常类似的。
&page id="/member.html"&
&widget id="/member_index.html"&
&type&member_index&/type&
&folder&member&/folder&
&custom_page&index&/custom_page&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_order.html"&
&type&member_order&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_orderdetail_(\d+).html"&
&type&member_orderdetail&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_favorite.html"&
&type&member_favorite&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_gnotify.html"&
&type&member_gnotify&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_info.html"&
&type&member_info&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_address.html"&
&type&member_address&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_pointhistory.html"&
&type&member_pointhistory&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_security.html"&
&type&member_security&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_comments.html"&
&type&member_comments&/type&
&mustbelogin&yes&/mustbelogin&
&widget id="/member_ask.html"&
&type&member_ask&/type&
&mustbelogin&yes&/mustbelogin&
相应的我们的URL都要映射给/member.html这个模板,并且在member.html模板中通过${widget_main}来输出匹配URL的挂件HTML。
一般地,member.html中的内容像如下这样:
&div id="menu_wrapper"&
&#include member/menu.html /& &!--包含会员中心菜单 --&
&div id=:"content_wrapper"&
${widget_main} &!--输出相应挂件的内容 --&
对于Ajax方式的请求,javashop提供了两种方式的URL支持。
/widget?type=挂件id&ajax=yes&其它参数
/url?widgetid=挂件id&ajax=yes&其它参数
两种方式分别用于json式的数据及html式的ajax请求。
此参数为必须,传递要调用的挂件id(beanid)
此参数为必须,传递值为yes
正常映射的url
参数widgetid
此参数为必须,传递的值为:在widgets.xml中声名的挂件id
此参数为必须,传递值为yes
以如下配置为例:
&page id="/test.html"&
&widget id="cart"&
&type&shop_cart&/type&
&action name="getTotal"&cart_total&/action &
&folder&cart&/folder&
cart_total.html的内容为:
&li&商品费用:${goodsprice}&/li&
&li&配送费用:${shipprice}&/li&
则可以通过如下url请求得到异步请求的html片断:
/test.html?widgetid=cart&ajax=yes&action=getTotal
返回html为:
&li&商品费用:¥90。00&/li&
&li&配送费用:¥5.00&/li&
自Javashop3之后,在Javashop中默认存在着一个 ,它为我们提供了默认的挂件配置
widgets.xml的配置优先级高于widgets_default.xml,如:
两个配置文件某个节点中分别声明了不同的挂件配置(一个page节点,分别声明了两个不同配置的挂件,挂件的id相同,但配置不同)
widgets_default.xml中存在下面的配置
&page id="common"&
&widget id="header"&
&type&header&/type&
在widgets.xml中同样存在下面的配置
&page id="common"&
&widget id="header"&
&type&header&/type&
&custom_page&header_common&/custom_page&
&folder&common&/folder&
两者都配置了关于page为common,挂件id为header的配置。上面widegets.xml中有不同的配置。那么这段配置将以widgets.xml中为准,即如果存在相同配置,则用widgets.xml中的配置覆盖了widgets_default.xml的配置。
分为两种情况:
某个节点中分别声明了不同的挂件配置(一个page节点,分别声明了两个挂件,挂件的id不同)
分别配置了不同的page节点(分别存在多个不同的page节点)
下面分别加以说明:
widgets_default.xml中存在下面的配置
&page id="common"&
&widget id="header"&
&type&header&/type&
在widgets.xml中也存在id为common的page节点
但它声明了id为member_bar的另外一个挂件配置:
&page id="common"&
&widget id="member_bar"&
&type&member_bar&/type&
&custom_page&member_bar&/custom_page&
&folder&common&/folder&
那么javashop会将两个配置合并,合并后后的效果为:
&page id="common"&
&widget id="header"&
&type&header&/type&
&widget id="member_bar"&
&type&member_bar&/type&
&custom_page&member_bar&/custom_page&
&folder&common&/folder&
widgets_default.xml中存在下面的配置
&page id="common"&
&widget id="header"&
&type&header&/type&
在widgets.xml中声明了另外page节点的配置,如:
&page id="/cart.html"&
&widget id="cart"&
&type&shop_cart&/type&
&custom_page&cart&/custom_page&
&folder&cart&/folder&
那么javashop会将两个配置合并,合并后后的效果为:
&page id="common"&
&widget id="header"&
&type&header&/type&
&page id="/cart.html"&
&widget id="cart"&
&type&shop_cart&/type&
&custom_page&cart&/custom_page&
&folder&cart&/folder&
widgets_default.xml位于/themes/widgets_default.xml,强烈建议不要直接修改widgets_default.xml文件
浏览: 14798 次
来自: 北京
javashop 的 模板 和 widge挂件是 怎么运作实现 ...
又是一个卖代码的!!!!!!
你好,上面的下载地址已经不能下载了,不知道这是哪个版本的?另外 ...
大量的interface只有一个实现,这样的interface ...
rensanning 写道系统还是不错的,设计上感觉是“类爆炸 ...

我要回帖

更多关于 登录界面模板 html 的文章

 

随机推荐