FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

页面的静态化  有的较多

中的注释都是以#号表示的

第一个项目结构

代码的实现

  1. package cn.itcast.freemarker.model;
  2. public class Group {
  3. private String name;
  4. String id;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public Group(String name) {
  12. super();
  13. this.name = name;
  14. }
  15. public Group() {
  16. }
  17. public void sayHello(){
  18. System.out.println("hello");
  19. }
  20. public void sayHello2(){
  21. System.out.println("hello");
  22. }
  23. public void sayHello1(){
  24. System.out.println("hello");
  25. System.out.println("hello2");
  26. System.out.println("hello3");
  27. }
  28. public void test(){
  29. System.out.println("lisi");
  30. System.out.println("wangwu");
  31. System.out.println("wangwu");
  32. }
  33. }
  1. package cn.itcast.freemarker.model;
  2. public class User {
  3. private int id;
  4. private String name;
  5. private int age;
  6. private Group group;
  7. private String ddd;
  8. public Group getGroup() {
  9. return group;
  10. }
  11. public void setGroup(Group group) {
  12. this.group = group;
  13. }
  14. public int getId() {
  15. return id;
  16. }
  17. public void setId(int id) {
  18. this.id = id;
  19. }
  20. public String getName() {
  21. return name;
  22. }
  23. public void setName(String name) {
  24. this.name = name;
  25. }
  26. public int getAge() {
  27. return age;
  28. }
  29. public void setAge(int age) {
  30. this.age = age;
  31. }
  32. public void remove(){
  33. }
  34. }
  1. package cn.itcast.util;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.OutputStreamWriter;
  6. import java.io.Writer;
  7. import java.util.Map;
  8. import freemarker.template.Configuration;
  9. import freemarker.template.Template;
  10. public class FMutil {
  11. /**
  12. *
  13. * @param ftlName:模板名称
  14. * @param fileName:生成的页面名称
  15. * @param map:数据
  16. * @throws Exception
  17. */
  18. public void ouputFile(String ftlName, String fileName,  Map<String, Object> map) throws Exception{
  19. //创建fm的配置
  20. Configuration config = new Configuration();
  21. //指定默认编码格式
  22. config.setDefaultEncoding("UTF-8");
  23. //设置模板的包路径,包的路径使用/来分隔
  24. config.setClassForTemplateLoading(this.getClass(), "/ftl");
  25. 获得包的模板
  26. Template template = config.getTemplate(ftlName);
  27. //指定文件输出的路径
  28. String path = "D:/fm";
  29. //定义输出流,注意的必须指定编码
  30. Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path+"/"+fileName)),"UTF-8"));
  31. //生成模板
  32. template.process(map, writer);
  33. }
  34. }

fm1.ftl

  1. ${username}

fm2.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <h1>${username}</h1>
  9. </body>
  10. </html>

fm3.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <h1>${user.id}-------${user.name}-------${user.age}</h1>
  9. <#-- 注释的写法-->
  10. <#if user.age lt 10>
  11. 小孩
  12. <#elseif user.age lt 16>
  13. 未成年
  14. <#else>
  15. 已经成年
  16. </#if>
  17. </body>
  18. </html>

fm4.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <#list userList as user>
  9. <#-- list的索引变量名+"_index" -->
  10. ${user_index}---------${user.id}-----${user.name}-------${user.age}<br>
  11. </#list>
  12. </body>
  13. </html>

fm5.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. <#include "/top1.ftl">
  7. </head>
  8. <body>
  9. <#list userList as user>
  10. ${user.id}-----${user.name}-------${user.age}<br>
  11. </#list>
  12. </body>
  13. </html>

fm6.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <#-- 如果所取的属性值为空默认不处理会报错,如果想显示空(xxx.yy)!-->
  9. ${user.id}-----${user.name}-------${user.age}-----${(user.group)!}<br>
  10. ${user.group!"空值"}
  11. ${(user.group.name)!}
  12. <#-- 三层以上不如不加括号用!直接取值不成功必须加括号,按规范无论几层都加括号-->
  13. ${(a.b)!}
  14. <#-- ()??非空判断-->
  15. <#if (user.group)??>
  16. 不为空
  17. <#else>
  18. 为空
  19. </#if>
  20. </body>
  21. </html>

fm6.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <#assign name="zhangsan">
  9. ${name}
  10. <#assign num=10>
  11. ${num+10}
  12. <#assign num="10">
  13. ${num+10}
  14. <#--布尔类型必须要转成字符串来输出-->
  15. <#assign is=true>
  16. ${is?string}
  17. ${(a.b)???string}
  18. <#-- 日期需要转成字符串输出 -->
  19. ${now?string("yyyy-MM-dd HH:mm:ss")}
  20. <#--如果变量重复后边的变量值会覆盖前面的-->
  21. <#assign bir="1985-04-22 12:33:33"?date("yyyy-MM-dd HH:mm:ss")>
  22. ${bir}
  23. <br>
  24. <#assign bir="1985-04-22 12:33:33"?datetime("yyyy-MM-dd HH:mm:ss")>
  25. ${bir}
  26. <#-- 把html转成文本类型 -->
  27. ${"<br/>"?html}
  28. ${"abcd"?left_pad(10,"-")}
  29. ${1.6?int}
  30. </body>
  31. </html>

fm7.ftl

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <#assign name="zhangsan">
  9. ${name}
  10. <#assign num=10>
  11. ${num+10}
  12. <#assign num="10">
  13. ${num+10}
  14. <#--布尔类型必须要转成字符串来输出-->
  15. <#assign is=true>
  16. ${is?string}
  17. ${(a.b)???string}
  18. <#-- 日期需要转成字符串输出 -->
  19. ${now?string("yyyy-MM-dd HH:mm:ss")}
  20. <#--如果变量重复后边的变量值会覆盖前面的-->
  21. <#assign bir="1985-04-22 12:33:33"?date("yyyy-MM-dd HH:mm:ss")>
  22. ${bir}
  23. <br>
  24. <#assign bir="1985-04-22 12:33:33"?datetime("yyyy-MM-dd HH:mm:ss")>
  25. ${bir}
  26. <#-- 把html转成文本类型 -->
  27. ${"<br/>"?html}
  28. ${"abcd"?left_pad(10,"-")}
  29. ${1.6?int}
  30. </body>
  31. </html>

productDetail.ftl

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="author" content="http://www.asiainfo-linkage.com/" />
  6. <meta name="copyright" content="asiainfo-linkage.com 版权所有,未经授权禁止链接、复制或建立镜像。" />
  7. <meta name="description" content="中国移动通信 name.com"/>
  8. <meta name="keywords" content="中国移动通信 name.com"/>
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=1.0"/>
  10. <meta name="apple-mobile-web-app-capable" content="yes" />
  11. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10" />
  12. <title>商品详细_移动商城_中国移动通信</title>
  13. <link rel="icon" href="/favicon.ico" type="image/x-icon" />
  14. <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
  15. <link rel="search" type="application/opensearchdescription+xml" href="../opensearch.xml" title="移动购物" />
  16. <link rel="stylesheet" href="../res/css/style.css" />
  17. <script src="../res/js/jquery.js"></script>
  18. <script src="../res/js/com.js"></script>
  19. <script type="text/javascript">
  20. <#assign path="http://localhost:8088/ecps-portal">
  21. <#assign upload="http://localhost:8080/pic/">
  22. $(function(){
  23. //拿到第一个a链接
  24. var firstA =  $(".box_orange li div a:first");
  25. //获取到sku的价钱
  26. var skuPrice = firstA.attr("skuPrice");
  27. //获取到市场价
  28. var marketPrice = firstA.attr("marketPrice");
  29. //设置sku价钱和市场价
  30. $("#skuPrice").html("¥"+skuPrice);
  31. $("#marketPrice").html("¥"+marketPrice);
  32. //获取sku的Id
  33. var skuId = firstA.attr("skuId");
  34. //验证sku的库存
  35. $.ajax({
  36. url:"${path}/item/validateStock.do",
  37. type:"post",
  38. dataType:"text",
  39. data:{
  40. skuId:skuId
  41. },
  42. success:function(responseText){
  43. if(responseText == "no"){
  44. //如果没有库存对购买和加入购物车的按钮来做隐藏
  45. $("#isStock").html("缺货");
  46. $("#buyNow").hide();
  47. $("#addCart").hide();
  48. }else{
  49. //如果有库存对购买和加入购物车的按钮来做显示
  50. $("#isStock").html("有货");
  51. $("#buyNow").show();
  52. $("#addCart").show();
  53. }
  54. },
  55. error:function(){
  56. alert("系统错误");
  57. }
  58. })
  59. //点击sku的a链接的时候
  60. $(".box_orange li a").click(function(){
  61. //移除所用选中的样式
  62. $(".box_orange li div a").each(function(){
  63. $(this).removeClass();
  64. });
  65. //点击的sku加上选中样式
  66. $(this).attr("class","here");
  67. var skuPrice = $(this).attr("skuPrice");
  68. var marketPrice = $(this).attr("marketPrice");
  69. $("#skuPrice").html("¥"+skuPrice);
  70. $("#marketPrice").html("¥"+marketPrice);
  71. var skuId = $(this).attr("skuId");
  72. $.ajax({
  73. url:"${path}/item/validateStock.do",
  74. type:"post",
  75. dataType:"text",
  76. data:{
  77. skuId:skuId
  78. },
  79. success:function(responseText){
  80. if(responseText == "no"){
  81. $("#isStock").html("缺货");
  82. $("#buyNow").hide();
  83. $("#addCart").hide();
  84. }else{
  85. $("#isStock").html("有货");
  86. $("#buyNow").show();
  87. $("#addCart").show();
  88. }
  89. },
  90. error:function(){
  91. alert("系统错误");
  92. }
  93. })
  94. });
  95. $("#loginAlertIs").click(function(){
  96. tipShow('#loginAlert');
  97. });
  98. $("#promptAlertIs").click(function(){
  99. tipShow('#promptAlert');
  100. });
  101. $("#transitAlertIs").click(function(){
  102. tipShow('#transitAlert');
  103. });
  104. var $smallList = $(".smallList"),
  105. $smallL = $(".smallL"),
  106. $smallR = $(".smallR"),
  107. smallLen = $(".smallList a").length,
  108. smallNum = 0;
  109. $smallList.css("width",(smallLen*60));
  110. $smallL.live("click",function(){
  111. if(smallNum > 0){
  112. $smallList.stop(true,true).animate({
  113. "left":"+="+60
  114. },400);
  115. smallNum--;
  116. }
  117. });
  118. $smallR.live("click",function(){
  119. if(smallNum <= (smallLen-5)){
  120. $smallList.stop(true,true).animate({
  121. "left":"-="+60
  122. },400);
  123. smallNum++;
  124. }
  125. });
  126. $('#ecpsShareIcon a').click(function(){
  127. var type   = $(this).attr('class');
  128. var title  = document.title;
  129. var url    = window.location.href;
  130. var imgUrl = '';
  131. var href   = '';
  132. var share  = [
  133. {id:'0',type:'sinawb',name:'分享到新浪微博', href: ['http://v.t.sina.com.cn/share/share.php?url=',  encodeURIComponent(url), '&title=', encodeURIComponent(title)].join(''), bp: '0px 0px'},
  134. {id:'1',type:'qqwb',name: '分享到腾讯微博', href: ['http://v.t.qq.com/share/share.php?url=',  encodeURIComponent(url), '&title=', encodeURIComponent(title)].join(''), bp: '0px -16px'},
  135. {id:'2',type:'renren',name: '分享到人人网', href: ['http://www.connect.renren.com/share/sharer?url=',  encodeURIComponent(url), '&title=', encodeURIComponent(title)].join(''), bp: '0px -32px'},
  136. {id:'3',type:'qqzone',name: '分享到QQ空间', href: ['http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=',  encodeURIComponent(url), '&title=', encodeURIComponent(title)].join(''), bp: '0px -48px'},
  137. {id:'4',type:'sohuwb',name: '分享到搜狐微博', href: ['http://t.sohu.com/third/post.jsp?content=utf-8&url=',  encodeURIComponent(url), '&title=', encodeURIComponent(title)].join(''), bp: '0px -64px'},
  138. {id:'5',type:'',name: '分享到开心网', href: ['http://www.kaixin001.com/repaste/bshare.php?rurl=',  encodeURIComponent(url), '&rtitle=', encodeURIComponent(title)].join(''), bp: '0px -80px'},
  139. {id:'6',type:'',name: '分享到51社区', href: ['http://share.51.com/share/outSiteShare.php?uri=' , encodeURIComponent(url) ,'&title=' ,encodeURIComponent(title)].join(''), bp: '0px -96px'}
  140. ];
  141. for(var i=0; i<share.length; i++){
  142. if(type == share[i].type){
  143. href = share[i].href;
  144. };
  145. }
  146. if(type == 'copy'){
  147. var copyText = url.replace(/[.]{1}\d[.]{1}/gi, ".");
  148. copyText = copyText.replace(/\.+u+\d+\.+html/,".html");
  149. copyText = title + "\r\n" + copyText + "\r\n";
  150. if (window.clipboardData){
  151. window.clipboardData.setData("Text", copyText);
  152. alert('复制成功!');
  153. }
  154. }else{
  155. $(this).attr('href',href);
  156. }
  157. });
  158. $('.sub').mousedown(function(){
  159. var num = $('.num').val();
  160. --num;
  161. if(num == 0){
  162. $('#sub_add_msg').html('您填写的数字超过购买下限,单次购买下限为<var>1</var>件。');
  163. $('#sub_add_msg').show();
  164. return;
  165. }else{
  166. $('#sub_add_msg').hide();
  167. }
  168. $('.num').val(num);
  169. });
  170. $('.add').mousedown(function(){
  171. var num = $('.num').val();
  172. ++num;
  173. if(num == 6){
  174. $('#sub_add_msg').html('您填写的数字超过购买上限,单次购买上限为<var>5</var>件。');
  175. $('#sub_add_msg').show();
  176. return;
  177. }else{
  178. $('#sub_add_msg').hide();
  179. }
  180. $('.num').val(num);
  181. });
  182. });
  183. function buy(){
  184. window.location.href = "./shop/confirmProductCase.jsp";
  185. }
  186. function addCart(){
  187. window.location.href = "./shop/car.jsp";
  188. }
  189. </script>
  190. </head>
  191. <body>
  192. <div id="tipAlert" class="w tips">
  193. <p class="l">本网站将于4月11日12:00进行系统维护,维护期间,本站将暂停业务办理等相关业务,敬请见谅。</p>
  194. <p class="r"><a href="javascript:void(0);" title="关闭" onclick="$('#tipAlert').hide();"></a></p>
  195. </div>
  196. <div class="bar"><div class="bar_w">
  197. <p class="l">
  198. <!-- 未登录 -->
  199. <b class="l">
  200. <a href="#" title="个人客户" class="here">个人客户</a>
  201. <a href="#" title="企业客户">企业客户</a>
  202. </b>
  203. <span class="l">
  204. 欢迎来到中国移动!<a href="javascript:void(0);" title="登录" id="loginAlertIs" class="orange"><samp>[</samp>请登录<samp>]</samp></a> <a href="passport/register.html" title="免费注册">免费注册</a>
  205. <a href="javascript:void(0);" id="promptAlertIs" title="promptAlert">promptAlert</a>
  206. <a href="javascript:void(0);" id="transitAlertIs" title="transitAlert">transitAlert</a>
  207. </span>
  208. <!-- 登录后
  209. <span class="l">
  210. 您好,<a href="passport/personalInfo.html" title="13717782727">13717782727</a>!   <a href="#" title="我的账户" class="blue">我的账户</a>   <a href="#" title="我要办理" class="blue">我要办理</a>  <a href="passport/loginOut.html" title="退出" class="orange"><samp>[</samp>退出<samp>]</samp></a>
  211. </span>
  212. -->
  213. </p>
  214. <ul class="r uls">
  215. <!--
  216. <li class="dev"><a href="#" title="我的订单">我的订单</a></li>
  217. <li class="dev"><a href="#" title="我的收藏">我的收藏</a></li>
  218. <li class="dev"><a href="#" title="帮助中心">帮助中心</a></li>
  219. -->
  220. <li class="dev"><a href="#" title="在线客服">在线客服</a></li>
  221. <li class="dev"><a href="#" title="关于中国移动">关于中国移动</a></li>
  222. <li class="dev after"><a href="#" title="English">English</a></li>
  223. </ul>
  224. </div></div>
  225. <div class="w header">
  226. <h1><a href="http://www.bj.10086.cn" title="中国移动通信">中国移动通信</a></h1>
  227. <div class="area">
  228. <dl id="city">
  229. <dt><a href="javascript:void(0);" title="贵州">贵州<samp class="inb"></samp></a></dt>
  230. <dd class="bx hidden">
  231. <div class="tl"></div><div class="tr"></div>
  232. <ul class="ul">
  233. <li><a href="http://www.bj.10086.cn" title="北京">北京</a></li>
  234. <li><a href="http://www.gd.10086.cn" title="广东">广东</a></li>
  235. <li><a href="http://www.sh.10086.cn" title="上海">上海</a></li>
  236. <li><a href="http://www.tj.10086.cn" title="天津">天津</a></li>
  237. <li><a href="http://www.cq.10086.cn" title="重庆">重庆</a></li>
  238. <li><a href="http://www.ln.10086.cn" title="辽宁">辽宁</a></li>
  239. <li><a href="http://www.js.10086.cn" title="江苏">江苏</a></li>
  240. <li><a href="http://www.he.10086.cn" title="河北">河北</a></li>
  241. <li><a href="http://www.sc.10086.cn" title="四川">四川</a></li>
  242. <li><a href="http://www.sn.10086.cn" title="陕西">陕西</a></li>
  243. <li><a href="http://www.sx.10086.cn" title="山西">山西</a></li>
  244. <li><a href="http://www.ha.10086.cn" title="河南">河南</a></li>
  245. <li><a href="http://www.jl.10086.cn" title="吉林">吉林</a></li>
  246. <li><a href="http://www.sd.10086.cn" title="山东">山东</a></li>
  247. <li><a href="http://www.ah.10086.cn" title="安徽">安徽</a></li>
  248. <li><a href="http://www.hn.10086.cn" title="湖南">湖南</a></li>
  249. <li><a href="http://www.gx.10086.cn" title="广西">广西</a></li>
  250. <li><a href="http://www.jx.10086.cn" title="江西">江西</a></li>
  251. <li><a href="http://www.gz.10086.cn" title="贵州">贵州</a></li>
  252. <li><a href="http://www.yn.10086.cn" title="云南">云南</a></li>
  253. <li><a href="http://www.xz.10086.cn" title="西藏">西藏</a></li>
  254. <li><a href="http://www.gs.10086.cn" title="甘肃">甘肃</a></li>
  255. <li><a href="http://www.zj.10086.cn" title="浙江">浙江</a></li>
  256. <li><a href="http://www.fj.10086.cn" title="福建">福建</a></li>
  257. <li><a href="http://www.hi.10086.cn" title="海南">海南</a></li>
  258. <li><a href="http://www.hb.10086.cn" title="湖北">湖北</a></li>
  259. <li><a href="http://www.nx.10086.cn" title="宁夏">宁夏</a></li>
  260. <li><a href="http://www.qh.10086.cn" title="青海">青海</a></li>
  261. <li><a href="http://www.xj.10086.cn" title="新疆">新疆</a></li>
  262. <li><a href="http://www.hl.10086.cn" title="黑龙江">黑龙江</a></li>
  263. <li class="col6"><a href="http://www.nm.10086.cn" title="内蒙古">内蒙古</a></li>
  264. <li class="col3"><a href="http://www.chinamobileltd.com" title="China Mobile Ltd">China Mobile Ltd</a></li>
  265. <li class="col3"><a href="http://labs.10086.cn" title="中国移动研究院">中国移动研究院</a></li>
  266. <li class="col3"><a href="http://www.cmdi.10086.cn" title="中国移动设计院">中国移动设计院</a></li>
  267. </ul>
  268. <div class="fl"></div><div class="fr"></div>
  269. </dd>
  270. </dl>
  271. </div>
  272. <p title="移动改变生活"><span>移动</span>改变生活<samp>>></samp></p>
  273. </div>
  274. <div class="w nav">
  275. <ul class="uls">
  276. <li><a href="#" title="服务与支持" class="a"><b>服务与支持</b></a></li>
  277. <li id="shop" class="here"><a href="#" title="网上营业厅" class="a"><b>网上营业厅</b></a>
  278. <div class="col4 hidden">
  279. <dl class="col">
  280. <dt title="手机商城">手机商城</dt>
  281. <dd><a href="#" title="诺基亚">诺基亚</a></dd>
  282. <dd><a href="#" title="华为">华为</a></dd>
  283. <dd><a href="#" title="三星">三星</a></dd>
  284. <dd><a href="#" title="最新优惠">中兴</a></dd>
  285. </dl>
  286. <dl class="col2">
  287. <dt title="网上选号">网上选号</dt>
  288. <dd><a href="#" title="全球通">全球通</a></dd>
  289. <dd><a href="#" title="动感地带">动感地带</a></dd>
  290. <dd><a href="#" title="神州行">神州行</a></dd>
  291. </dl>
  292. <dl class="col3">
  293. <dt title="优惠活动">优惠活动</dt>
  294. <dd><a href="#" title="购机返话费">购机返话费</a></dd>
  295. <dd><a href="#" title="优惠购机">优惠购机</a></dd>
  296. </dl>
  297. <span></span>
  298. </div>
  299. </li>
  300. <li id="my"><a href="#" title="我的移动" class="a"><b>我的移动</b></a>
  301. <div class="col2 hidden">
  302. <dl class="col">
  303. <dt title="我的账户">我的账户</dt>
  304. <dd><a href="#" title="套餐余量查询">套餐余量查询</a></dd>
  305. <dd><a href="#" title="积分查询">积分查询</a></dd>
  306. <dd><a href="#" title="业务状态查询">业务状态查询</a></dd>
  307. <dd><a href="#" title="充值缴费" class="red">充值缴费</a></dd>
  308. <dd><a href="#" title="详单查询">详单查询</a></dd>
  309. <dd><a href="#" title="余额查询">余额查询</a></dd>
  310. <dd><a href="#" title="账单查询">账单查询</a></dd>
  311. </dl>
  312. <dl class="col2">
  313. <dt title="我要办理">我要办理</dt>
  314. <dd><a href="#" title="快速查找">快速查找</a></dd>
  315. <dd><a href="#" title="产品推荐">产品推荐</a></dd>
  316. <dd><a href="#" title="生活配对">生活配对</a></dd>
  317. <dd><a href="#" title="最新优惠">最新优惠</a></dd>
  318. </dl>
  319. <dl class="col3">
  320. <dt title="移动生活">移动生活</dt>
  321. <dd><a href="#" title="手机阅读">手机阅读</a></dd>
  322. <dd><a href="#" title="无线音乐俱乐部">无线音乐俱乐部</a></dd>
  323. <dd><a href="#" title="手机游戏">手机游戏</a></dd>
  324. </dl>
  325. <span></span>
  326. </div>
  327. </li>
  328. <li><a href="#" title="首页" class="a"><b>首页</b></a></li>
  329. </ul>
  330. </div>
  331. <div class="w sch">
  332. <div class="l">
  333. <dl class="goto">
  334. <dt title="快捷办理通道">快捷办理通道<i class="inb"></i></dt>
  335. <dd class="hidden">
  336. <a href="#" target="_blank" title="移动数据流量详单">移动数据流量详单</a>
  337. <a href="#" target="_blank" title="家庭亲情网">家庭亲情网</a>
  338. <a href="#" target="_blank" title="虚拟网业务">虚拟网业务</a>
  339. <a href="#" target="_blank" title="全球通商旅套餐">全球通商旅套餐</a>
  340. <a href="#" target="_blank" title="短信业务">短信业务</a>
  341. <a href="#" target="_blank" title="彩铃业务">彩铃业务</a>
  342. <a href="#" target="_blank" title="WLAN业务(含校园版)">WLAN业务(含校园版)</a>
  343. <a href="#" target="_blank" title="G3可视电话">G3可视电话</a>
  344. <a href="#" target="_blank" title="全球通上网套餐">全球通上网套餐</a>
  345. <a href="#" target="_blank" title="飞信业务">飞信业务</a>
  346. </dd>
  347. </dl>
  348. <p><a href="#" title="购机选号">购机选号</a><samp>|</samp><a href="#" title="网上交费">网上交费</a><samp>|</samp><a href="#" title="积分商城">积分商城</a><samp>|</samp><a href="http://www.gz.10086.cn/zf/" target="_blank">资费专区</a></p>
  349. </div>
  350. <form method="post" action="" name="" class="r">
  351. 热门搜索:<a href="#" title="GPRS">GPRS</a><samp>|</samp><a href="#" title="全球通新88套餐">全球通新88套餐</a>
  352. <select name="screahType" id="screahType">
  353. <option>商城</option>
  354. <option>号卡</option>
  355. <option>门户</option>
  356. </select><input type="text" class="txt_sch gray" id="screahWord" name="screahWord" onfocus="if(this.value=='请输入商品名称关键字'){this.value='';this.className='txt_sch'}" onblur="if(this.value==''){this.value='请输入商品名称关键字';this.className='txt_sch gray'}" value="请输入商品名称关键字" /><input type="submit" value="搜索" class="hand btn60x26" /></form>
  357. </div>
  358. <div class="w loc">
  359. <p class="l"><a href="#" title="商城首页">商城首页</a><samp>|</samp><a href="#" title="我的商城">我的商城</a></p>
  360. <dl id="cart" class="cart l">
  361. <dt><a href="#" title="结算">结算</a>购物车:<b id="">123</b>件</dt>
  362. <dd class="hidden">
  363. <p class="alg_c hidden">购物车中还没有商品,赶紧选购吧!</p>
  364. <h3 title="最新加入的商品">最新加入的商品</h3>
  365. <ul class="uls">
  366. <li>
  367. <a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L"><img src="../res/img/pic/p50x50.jpg" alt="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L" /></a>
  368. <p class="dt"><a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L">倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L</a></p>
  369. <p class="dd">
  370. <b><var>¥3599</var><span>x1</span></b>
  371. <a href="javascript:void(0);" title="删除" class="del">删除</a>
  372. </p>
  373. </li>
  374. <li>
  375. <a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L"><img src="../res/img/pic/p50x50b.jpg" alt="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L" /></a>
  376. <p class="dt"><a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L">倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L</a></p>
  377. <p class="dd">
  378. <b><var>¥3599</var><span>x1</span></b>
  379. <a href="javascript:void(0);" title="删除" class="del">删除</a>
  380. </p>
  381. </li>
  382. <li>
  383. <a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L"><img src="../res/img/pic/p50x50c.jpg" alt="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L" /></a>
  384. <p class="dt"><a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L">倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L</a></p>
  385. <p class="dd">
  386. <b><var>¥3599</var><span>x1</span></b>
  387. <a href="javascript:void(0);" title="删除" class="del">删除</a>
  388. </p>
  389. </li>
  390. <li>
  391. <a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L"><img src="../res/img/pic/p50x50.jpg" alt="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L" /></a>
  392. <p class="dt"><a href="#" title="倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L">倍力通(Prestone)超级全合成机油5W-40 SM级 4L倍力通(Prestone)超级全合成机油5W-40 SM级 4L</a></p>
  393. <p class="dd">
  394. <b><var>¥3599</var><span>x1</span></b>
  395. <a href="javascript:void(0);" title="删除" class="del">删除</a>
  396. </p>
  397. </li>
  398. </ul>
  399. <div>
  400. <p>共<b>4</b>件商品    共计<b class="f20">¥3599.00</b></p>
  401. <a href="#" title="去购物车结算" class="inb btn120x30c">去购物车结算</a>
  402. </div>
  403. </dd>
  404. </dl>
  405. <p class="r"><a href="index.html" title="商城首页">商城首页</a><samp>></samp><a href="#" title="手机商城">手机商城</a><samp>></samp><a href="#" title="HTC">HTC</a><samp>></samp><span class="gray">HTC A6390</span></p>
  406. </div>
  407. <div class="w ofc mt">
  408. <div class="l wl">
  409. <h2 class="h2 h2_l"><em title="商品分类">商品分类</em><cite></cite></h2>
  410. <div class="box bg_gray">
  411. <ul class="ul left_nav">
  412. <li><a href="#" title="网上选号"><img src="../res/img/gray/ln01.gif" alt="网上选号" />网上选号</a></li>
  413. <li><a href="#" title="手机商城"><img src="../res/img/gray/ln02.gif" alt="手机商城" />手机商城</a></li>
  414. <li><a href="#" title="优惠活动"><img src="../res/img/gray/ln03.gif" alt="优惠活动" />优惠活动</a></li>
  415. </ul>
  416. </div>
  417. <h2 class="h2 h2_l mt"><em title="销量排行榜">销量排行榜</em><cite></cite></h2>
  418. <div class="box bg_white">
  419. <ul class="uls x_150x150">
  420. <li class="here">
  421. <var class="sfont">1.</var>
  422. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  423. <dl>
  424. <!-- dt 11个文字+... -->
  425. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉摩托罗拉托罗拉...</a></dt>
  426. <!-- dd 23个文字+... -->
  427. <dd class="h40">摩托罗拉摩托罗拉托罗拉拉摩托罗拉摩托罗拉托罗罗...</dd>
  428. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  429. </dl>
  430. </li>
  431. <li>
  432. <var class="sfont">2.</var>
  433. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  434. <dl>
  435. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  436. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  437. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  438. </dl>
  439. </li>
  440. <li>
  441. <var class="sfont">3.</var>
  442. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  443. <dl>
  444. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  445. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  446. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  447. </dl>
  448. </li>
  449. <li>
  450. <var class="sfont">4.</var>
  451. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  452. <dl>
  453. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  454. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  455. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  456. </dl>
  457. </li>
  458. <li>
  459. <var class="sfont">5.</var>
  460. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  461. <dl>
  462. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  463. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  464. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  465. </dl>
  466. </li>
  467. <li>
  468. <var class="sfont">6.</var>
  469. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  470. <dl>
  471. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  472. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  473. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  474. </dl>
  475. </li>
  476. <li>
  477. <var class="sfont">7.</var>
  478. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  479. <dl>
  480. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  481. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  482. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  483. </dl>
  484. </li>
  485. <li>
  486. <var class="sfont">8.</var>
  487. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  488. <dl>
  489. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  490. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  491. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  492. </dl>
  493. </li>
  494. <li>
  495. <var class="sfont">9.</var>
  496. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  497. <dl>
  498. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  499. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  500. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  501. </dl>
  502. </li>
  503. <li>
  504. <var class="sfont">10.</var>
  505. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  506. <dl>
  507. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  508. <dd class="h40">3G手机(黑)WCDMA/GSM 新品上市!!下单就返</dd>
  509. <dd><span class="gray">抢购价:</span><var class="red b f14">¥3599</var></dd>
  510. </dl>
  511. </li>
  512. </ul>
  513. <script language="javascript" type="text/javascript">
  514. $('.x_150x150').each(function(i, items_list){
  515. $(items_list).find('li').hover(function(){
  516. $(items_list).find('li').each(function(j, li){
  517. $(li).removeClass('here');
  518. });
  519. $(this).addClass('here');
  520. },function(){});
  521. });
  522. </script>
  523. </div>
  524. <h2 class="h2 h2_l mt"><em title="我的浏览记录">我的浏览记录</em><cite></cite></h2>
  525. <div class="box bg_white">
  526. <ul class="uls x_50x50">
  527. <li>
  528. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  529. <dl>
  530. <!-- dt 8个文字+... -->
  531. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉摩托罗拉拉...</a></dt>
  532. <dd class="orange">¥3599 ~ ¥4599</dd>
  533. </dl>
  534. </li>
  535. <li>
  536. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  537. <dl>
  538. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  539. <dd class="orange">¥3599 ~ ¥4599</dd>
  540. </dl>
  541. </li>
  542. <li>
  543. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  544. <dl>
  545. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  546. <dd class="orange">¥3599 ~ ¥4599</dd>
  547. </dl>
  548. </li>
  549. <li>
  550. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  551. <dl>
  552. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  553. <dd class="orange">¥3599 ~ ¥4599</dd>
  554. </dl>
  555. </li>
  556. <li>
  557. <a href="#" title="张同来" target="_blank" class="pic"><img src="../res/img/pic/p140X140b.png" alt="摩托罗拉XT319" /></a>
  558. <dl>
  559. <dt><a href="#" title="摩托罗拉XT319" target="_blank">摩托罗拉XT319</a></dt>
  560. <dd class="orange">¥3599 ~ ¥4599</dd>
  561. </dl>
  562. </li>
  563. </ul>
  564. </div>
  565. <div class="ad200x75 mt"><img src="../res/img/pic/ad200x75.jpg" alt="" /></div>
  566. <div class="ad200x169 mt"><img src="../res/img/pic/ad200x169.jpg" alt="" /></div>
  567. <div class="ad200x244 mt"><img src="../res/img/pic/ad200x244.jpg" alt="" /></div>
  568. </div>
  569. <div class="r wr">
  570. <div class="product">
  571. <h2>${item.itemName }<span class="gray f14">${item.promotion }</span></h2>
  572. <div class="showPro">
  573. <div class="big"><a id="showImg" class="cloud-zoom" href="${upload }${item.imgSize1}" rel="adjustX:10,adjustY:-1"><img title="optional title display" alt="" src="${upload }${item.imgSize1}"></a></div>
  574. <div class="small">
  575. <span class="smallL" title="向左"> </span>
  576. <div class="smallBox">
  577. <div class="smallList">
  578. <a class="cloud-zoom-gallery here" title="red" href="${upload }${item.imgSize1}" rel="useZoom: 'showImg', smallImage: '${upload }${item.imgSize1}'"><img alt="thumbnail 1" src="${upload }${item.imgSize1}"></a>
  579. <a class="cloud-zoom-gallery" title="blue" href="${upload }${item.imgSize1}" rel="useZoom: 'showImg', smallImage: '${upload }${item.imgSize1}'"><img alt="thumbnail 2" src="${upload }${item.imgSize1}"></a>
  580. <a class="cloud-zoom-gallery" title="blue" href="${upload }${item.imgSize1}" rel="useZoom: 'showImg', smallImage: '${upload }${item.imgSize1}'"><img alt="thumbnail 3" src="${upload }${item.imgSize1}"></a>
  581. <a class="cloud-zoom-gallery" title="blue" href="${upload }${item.imgSize1}" rel="useZoom: 'showImg', smallImage: '${upload }${item.imgSize1}'"><img alt="thumbnail 4" src="${upload }${item.imgSize1}"></a>
  582. <a class="cloud-zoom-gallery" title="blue" href="${upload }${item.imgSize1}" rel="useZoom: 'showImg', smallImage: '${upload }${item.imgSize1}'"><img alt="thumbnail 5" src="${upload }${item.imgSize1}"></a>
  583. </div>
  584. </div>
  585. <span class="smallR" title="向右"> </span>
  586. </div>
  587. <div class="share mt">
  588. <div id="ecpsShareIcon">
  589. <div class="iconSmall iconRight">
  590. <span>分享到:</span><a href="javascript:void(0);" target="_blank" class="sinawb" title="分享到新浪微博"></a><a href="javascript:void(0);" target="_blank" class="qqwb" title="分享到腾讯微博"></a><a href="javascript:void(0);" target="_blank" class="renren" title="分享到人人网"></a><a href="javascript:void(0);" target="_blank" class="qqzone" title="分享到QQ空间"></a><a href="javascript:void(0);" target="_blank" class="sohuwb" title="分享到搜狐微博"></a><a href="javascript:void(0);" class="copy" title="复制链接">复制链接</a>
  591. </div>
  592. </div>
  593. </div>
  594. </div>
  595. <form method="post" action="" name="" class="infor">
  596. <ul class="uls form">
  597. <li><label>移 动 价:</label><span class="word"><b id="skuPrice" class="f14 red mr">¥3999.00</b>(市场价:<del id="marketPrice">¥5789.00</del>)</span></li>
  598. <li><label>商品编号:</label><span class="word">${item.itemNo }</span></li>
  599. <li><label>商品评价:</label><span class="word"><span class="val_no val3d4" title="4分">4分</span><var class="blue">(已有17人评价)</var></span></li>
  600. <li><label>运  费:</label><span class="word">包邮    <a href="javascript:void(0);" class="blue">配送区域</a></span></li>
  601. <li><label>库  存:</label><span id="isStock" class="word">有货</span></li>
  602. <li><label>支付方式:</label><div class="pre word p16x16">
  603. <span title="网银支付" class="bank">网银支付</span>
  604. <span title="支付宝" class="pay">支付宝</span>
  605. <span title="手机支付" class="moblie">手机支付</span>
  606. </div></li>
  607. </ul>
  608. <div class="box_orange">
  609. <ul class="uls form">
  610. <li><label>规  格:</label><div class="pre spec">
  611. <#list item.skuList as sku>
  612. <#if sku_index == 0>
  613. <a href="javascript:void(0);" skuId="${sku.skuId }" skuPrice="${sku.skuPrice }" marketPrice="${(sku.marketPrice)! }" class="here">
  614. <#list sku.specList as spec>
  615. ${spec.specValue }
  616. </#list>
  617. </a>
  618. <#else>
  619. <a href="javascript:void(0);" skuId="${sku.skuId }" skuPrice="${sku.skuPrice }" marketPrice="${(sku.marketPrice)! }">
  620. <#list sku.specList as spec>
  621. ${spec.specValue }
  622. </#list>
  623. </a>
  624. </#if>
  625. </#list>
  626. </div></li>
  627. <li><label>我 要 买:</label><a href="javascript:void(0);" class="inb sub"></a><input readonly type="text" name="" value="1" class="num" size="3" /><a href="javascript:void(0);" class="inb add"></a><em id="sub_add_msg" class="red"></em></li>
  628. <li class="submit"><input id="buyNow" type="button" value="" class="hand btn138x40" onclick="buy();"/><input id="addCart" type="button" value="" class="hand btn138x40b" onclick="addCart()"/><a href="#" title="加入收藏" class="inb fav">加入收藏</a></li>
  629. </ul>
  630. </div>
  631. </form>
  632. </div>
  633. <div class="confirm mt">
  634. <div class="tl"></div><div class="tr"></div>
  635. <div class="ofc">
  636. <dl class="dl_msg">
  637. <dt><b class="f14 blue">营销活动</b><span class="gray">选择营销活动以获得更多优惠。</span></dt>
  638. <dd>1、全球通50优惠购机 <a href="#" title="title">[查看详情]</a></dd>
  639. <dd>2、畅想计划 <a href="#" title="title">[查看详情]</a></dd>
  640. <dd>3、2011全球通88套餐终端营销活动 <a href="#" title="title">[查看详情]</a></dd>
  641. </dl>
  642. </div>
  643. <div class="fl"></div><div class="fr"></div>
  644. </div>
  645. <h2 class="h2 h2_ch mt"><em>
  646. <a href="javascript:void(0);" title="商品描述" rel="#detailTab1" class="here">商品描述</a>
  647. <a href="javascript:void(0);" title="规格参数" rel="#detailTab2">规格参数</a>
  648. <a href="javascript:void(0);" title="包装信息" rel="#detailTab3">包装信息</a></em><cite></cite></h2>
  649. <div class="box bg_white ofc">
  650. <div id="detailTab1" class="detail">
  651. ${(item.itemClob.itemDesc)! }
  652. </div>
  653. <div id="detailTab2" style="display:none">
  654. <table cellspacing="0" summary="" class="tab tab7">
  655. <thead>
  656. <tr>
  657. <th colspan="2">基本参数</th>
  658. </tr>
  659. </thead>
  660. <tbody>
  661. <#list item.paraList as para>
  662. <tr>
  663. <th width="15%" class="alg_r">${para.featureName }</th>
  664. <td>${para.paraValue }</td>
  665. </tr>
  666. </#list>
  667. </tbody>
  668. </table>
  669. </div>
  670. <div id="detailTab3" class="detail" style="display:none">
  671. <pre class="f14">
  672. 商品标配请您以包装清单为准:
  673. iPhone 4s *1,
  674. 带遥控功能和麦克风的 Apple 耳机 *1,
  675. Dock Connector to USB 线缆 *1,
  676. USB 电源转换器 *1,
  677. SIM 弹出工具 *1,
  678. 包装、说明书、保修卡*1,
  679. </pre>
  680. </div>
  681. <dl class="dl_help">
  682. <dd>
  683. 本产品全国联保,享受三包服务,质保期为:一年质保<br />
  684. 如因质量问题或故障,凭厂商维修中心或特约维修点的质量检测证明,享受7日内退货,15日内换货,15日以上在质保期内享受免费保修等三包服务!<br />
  685. 售后服务电话:<var class="blue">400-830-8300</var><br />
  686. 品牌官方网站:<var class="blue">http://www.huawei.com/cn/</var>
  687. </dd>
  688. <dt>服务承诺:</dt>
  689. <dd>
  690. 中国移动手机购商城向您保证所售商品均为正品行货,自带机打发票,与商品一起寄送。凭质保证书及中国移动手机购商城发票,可享受全国联保服务,与您亲临商场选购的商品享受相同的质量保证。<br />
  691. 中国移动手机购商城还为您提供具有竞争力的商品价格和运费政策,请您放心购买!(钟表除外)<br />
  692. <span class="blue"><b>注:</b>因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!</span><br />
  693. </dd>
  694. <dt class="red">权利声明:</dt>
  695. <dd>中国移动手机购商城上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是中国移动手机购商城重要的经营资源,未经许可,禁止非法转载使用。</dd>
  696. </dl>
  697. </div>
  698. </div>
  699. </div>
  700. <div class="mode">
  701. <div class="tl"></div><div class="tr"></div>
  702. <ul class="uls">
  703. <li class="first">
  704. <span class="guide"></span>
  705. <dl>
  706. <dt title="购物指南">购物指南</dt>
  707. <dd><a href="#" title="在线购机/预约购机流程">在线购机/预约购机流程</a></dd>
  708. <dd><a href="#" target="_blank" title="预约选号流程">预约选号流程</a></dd>
  709. </dl>
  710. </li>
  711. <li>
  712. <span class="way"></span>
  713. <dl>
  714. <dt title="支付方式">支付方式</dt>
  715. <dd><a href="#" title="在线支付">在线支付</a></dd>
  716. <dd><a href="#" title="退款周期">退款周期</a></dd>
  717. </dl>
  718. </li>
  719. <li>
  720. <span class="help"></span>
  721. <dl>
  722. <dt title="配送方式">配送方式</dt>
  723. <dd><a href="#" title="配送说明">配送说明</a></dd>
  724. <dd><a href="#" title="配送时间">配送时间</a></dd>
  725. <dd><a href="#" title="配送费用">配送费用</a></dd>
  726. <dd><a href="#" title="货品签收">货品签收</a></dd>
  727. </dl>
  728. </li>
  729. <li>
  730. <span class="service"></span>
  731. <dl>
  732. <dt title="售后服务">售后服务</dt>
  733. <dd><a href="#" target="_blank" title="退换货流程">退换货流程</a></dd>
  734. <dd><a href="#" target="_blank" title="售后服务点">售后服务点</a></dd>
  735. </dl>
  736. </li>
  737. <li>
  738. <span class="problem"></span>
  739. <dl>
  740. <dt title="常见问题">常见问题</dt>
  741. <dd><a href="#" target="_blank" title="配送时限是几天?">配送时限是几天?</a></dd>
  742. <dd><a href="#" target="_blank"title="付款方式有哪些?">付款方式有哪些?</a></dd>
  743. <dd><a href="#" target="_blank"title="如何签收商品?">如何签收商品?</a></dd>
  744. <dd><a href="#" target="_blank"title="是否提供三包售后?">是否提供三包售后?</a></dd>
  745. </dl>
  746. </li>
  747. </ul>
  748. </div>
  749. <div class="w footer">
  750. <p><a href="#" title="新闻公告">新闻公告</a><samp>|</samp><a href="#" title="法律声明">法律声明</a><samp>|</samp><a href="#" title="诚招英才">诚招英才</a><samp>|</samp><a href="#" title="联系我们">联系我们</a><samp>|</samp><a href="#" title="采购信息">采购信息</a><samp>|</samp><a href="#" title="企业合作">企业合作</a><samp>|</samp><a href="#" title="站点导航">站点导航</a><samp>|</samp><a href="#" title="网站地图">网站地图</a></p>
  751. <p>掌上营业厅:<a href="#" title="掌上营业厅:wap.10086.cn">wap.10086.cn</a>  语音自助服务:10086  短信营业厅:10086  <a href="http://www.bj.10086.cn/index/10086/channel/index.shtml">自助终端网点查询</a>  <a href="http://www.bj.10086.cn/index/10086/channel/index.shtml">满意100营业厅网点查询</a>  <a href="http://www.bj.10086.cn/index/10086/download/index.shtml">手机客户端下载</a></p>
  752. <p><a href="#" title="京ICP备05002571" class="inb i18x22"></a> 京ICP备05002571<samp>|</samp>中国移动通信集团 版权所有</p>
  753. </div>
  754. <div id="loginAlert" class="alt login" style="display:none">
  755. <h2 class="h2"><em title="登录">登录</em><cite></cite></h2>
  756. <a href="javascript:void(0);" id="loginAlertClose" class="close" title="关闭"></a>
  757. <div class="cont">
  758. <ul class="uls form">
  759. <li id="loginAlertError" class="errorTip" style="display:none"></li>
  760. <li>
  761. <label>帐号类型:</label>
  762. <dl class="bg_text" style="z-index:3">
  763. <dd class="hidden">
  764. <a href="javascript:void(0);" title="手机号码">手机号码</a>
  765. <a href="javascript:void(0);" title="用户名">用户名</a>
  766. </dd>
  767. <dt title="请选择帐号类型">请选择帐号类型</dt>
  768. </dl>
  769. </li>
  770. <li>
  771. <label>手机号码:</label>
  772. <span class="bg_text">
  773. <input type="text" maxlength="50" vld="{required:true}" name="loginUserName" id="loginUserName" reg1="^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$" desc="用户名长度不超过50个,必须是邮箱格式!" />
  774. <em id="userNameLabel" class="def">请输入手机号码</em>
  775. </span>
  776. <span class="word"><a title="免费注册" href="/ecps-portal/ecps/portal/register.do">免费注册</a></span>
  777. </li>
  778. <li>
  779. <label>登录模式:</label>
  780. <dl class="bg_text" style="z-index:2">
  781. <dd class="hidden">
  782. <a href="javascript:void(0);" title="服务密码">服务密码</a>
  783. <a href="javascript:void(0);" title="网站密码">网站密码</a>
  784. </dd>
  785. <dt title="请选择帐号类型">请选择登录模式</dt>
  786. </dl>
  787. </li>
  788. <li><label>服务密码:</label>
  789. <span class="bg_text"><input type="password" vld="{required:true}" maxlength="20" name="loginPassword" id="loginPassword" value="" reg1="^.{6,20}$" desc="密码长度范围为6-20,允许为中英文、数字或特殊字符!" /></span>
  790. </li>
  791. <li>
  792. <label for="captcha">验 证 码:</label>
  793. <span class="bg_text small"><input type="text" vld="{required:true}" maxlength="7" name="loginCaptcha" id="loginCaptcha" value="" reg1="^\w{6}$" desc="验证码不正确" /></span>
  794. <img alt="换一张" id="loginCaptchaCode" class="code" onclick="this.src='/ecps-portal/captcha.svl?d='+new Date().getTime();" src="../res/img/pic/code.png" /><a href="#" onclick="document.getElementById('loginCaptchaCode').src='/ecps-portal/captcha.svl?d='+new Date().getTime();" title="换一张">换一张</a>
  795. </li>
  796. <li class="gray"><label> </label><input type="checkbox" name="">记住我的手机号码</li>
  797. <li><label> </label><input type="button" id="loginSubmit" class="hand btn66x23" value="登 录" onclick="loginAjax('/ecps-portal/ecps/portal/item/landingAjax.do');" ><a title="忘记密码?" href="/ecps-portal/ecps/portal/getpwd/getpwd1.do">忘记密码?</a></li>
  798. <!--li class="alg_c dev gray">还不是移动商城会员?<a title="免费注册" href="/ecps-portal/ecps/portal/register.do">免费注册</a></li-->
  799. </ul>
  800. </div>
  801. </div>
  802. <div id="promptAlert" class="alt prompt" style="display:none">
  803. <h2 class="h2"><em title="提示">提示</em><cite></cite></h2>
  804. <a href="javascript:void(0);" id="promptAlertClose" class="close" title="关闭"></a>
  805. <div class="cont">
  806. <dl class="dl_msg">
  807. <dt>请在新页面完成支付!</dt>
  808. <dd>支付完成前请不要关闭此窗口,<br />完成支付后请根据您的情况点击下面的按钮。</dd>
  809. <dd><a href="#" title="遇到付款问题" class="inb btn96x23 mr20">遇到付款问题</a><a href="#" title="已完成支付" class="inb btn96x23">已完成支付</a></dd>
  810. <dd class="alg_r"><a href="#" title="返回选择其他支付方式">返回选择其他支付方式>></a></dd>
  811. </dl>
  812. </div>
  813. </div>
  814. <div id="transitAlert" class="alt transit" style="display:none">
  815. <h2 class="h2"><em title="提示">提示</em><cite></cite></h2>
  816. <a href="javascript:void(0);" id="transitAlertClose" class="close" title="关闭"></a>
  817. <div class="cont">
  818. <div class="warningMsg">
  819. <p class="indent">您即将访问的网站不属于中国移动通信集团公司门户网站站群范围,任何通过使用中国移动通信集团公司门户网站站群链接到的第三方页面均系第三方平台制作或提供,您可能从该第三方网页上获得资讯及享用服务,中国移动通信集团公司对其合法性概不负责,也不承担任何法律责任。</p>
  820. <p class="alg_c"><input type="button" class="hand btn66x23" value="确 定" /></p>
  821. </div>
  822. </div>
  823. </div>
  824. </body>
  825. </html>

top1.ftl

  1. <h1>欢迎${username}</h1>
  1. package com.rl.test;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9. import cn.itcast.freemarker.model.User;
  10. import cn.itcast.util.FMutil;
  11. public class FMTest {
  12. FMutil fm;
  13. Map<String, Object> map ;
  14. @Before
  15. public void setUp() throws Exception {
  16. fm = new FMutil();
  17. map = new HashMap<String, Object>();
  18. }
  19. //静态页面生成 zhangsan
  20. @Test
  21. public void test1() throws Exception {
  22. map.put("username", "zhangsan");
  23. fm.ouputFile("fm1.ftl", "fm1.html", map);
  24. }
  25. @Test
  26. public void test2() throws Exception {
  27. map.put("username", "zhangsan");
  28. fm.ouputFile("fm2.ftl", "fm2.html", map);
  29. }
  30. @Test
  31. public void test3() throws Exception {
  32. User user = new User();
  33. user.setId(1);
  34. user.setName("dalang");
  35. user.setAge(30);
  36. map.put("user", user);
  37. fm.ouputFile("fm3.ftl", "fm3.html", map);
  38. }
  39. @Test
  40. public void test4() throws Exception {
  41. List<User> userList = new ArrayList<User>();
  42. for(int i = 0 ; i < 10; i++){
  43. User user = new User();
  44. user.setId(1+i);
  45. user.setName("dalang");
  46. user.setAge(13+i);
  47. userList.add(user);
  48. }
  49. map.put("userList", userList);
  50. fm.ouputFile("fm4.ftl", "fm4.html", map);
  51. }
  52. @Test
  53. public void test5() throws Exception {
  54. List<User> userList = new ArrayList<User>();
  55. for(int i = 0 ; i < 10; i++){
  56. User user = new User();
  57. user.setId(1+i);
  58. user.setName("dalang");
  59. user.setAge(13+i);
  60. userList.add(user);
  61. }
  62. map.put("userList", userList);
  63. map.put("username", "西门庆");
  64. fm.ouputFile("fm5.ftl", "fm5.html", map);
  65. }
  66. @Test
  67. public void test6() throws Exception {
  68. User user = new User();
  69. user.setId(1);
  70. user.setName("dalang");
  71. user.setAge(13);
  72. map.put("user", user);
  73. fm.ouputFile("fm6.ftl", "fm6.html", map);
  74. }
  75. @Test
  76. public void test7() throws Exception {
  77. map.put("now", new Date());
  78. fm.ouputFile("fm7.ftl", "fm7.html", map);
  79. }
  80. }

pom.xml

    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    3. <modelVersion>4.0.0</modelVersion>
    4. <groupId>org.konghao.freemarker</groupId>
    5. <artifactId>freemarker-hello</artifactId>
    6. <version>0.0.1-SNAPSHOT</version>
    7. <packaging>jar</packaging>
    8. <name>freemarker-hello</name>
    9. <url>http://maven.apache.org</url>
    10. <properties>
    11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    12. </properties>
    13. <dependencies>
    14. <dependency>
    15. <groupId>junit</groupId>
    16. <artifactId>junit</artifactId>
    17. <version>4.7</version>
    18. <scope>test</scope>
    19. </dependency>
    20. <dependency>
    21. <groupId>org.freemarker</groupId>
    22. <artifactId>freemarker</artifactId>
    23. <version>2.3.19</version>
    24. </dependency>
    25. </dependencies>
    26. </project>

Freemarker讲解的更多相关文章

  1. (原创)ssm sql 例子(freemarker+jsp)

    ssm整合地址:http://www.cnblogs.com/xiaohuihui96/p/6104351.html 接下讲解一个插入语句的流程和顺带讲解freemarker+jsp视图的整合 初次接 ...

  2. 页面静态化技术Freemarker技术的介绍及使用实例.

    一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 ...

  3. SSH中的jar包讲解(1)

    我们在搭建SSH框架的时候,需要引入各自的一些jar包,相信很多初学者跟我一样,搜个资料,照搬过来(当然版本还得对应),至于为什么要引入这些个jar包,引入它们的作用是啥子,一头雾水,今天我就来跟这些 ...

  4. SpringMVC讲解

    2.1.Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职 ...

  5. Struts.xml讲解

    解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt+/ 没有提示,这是因为” http://struts.apache.org/d ...

  6. Freemarker 浅析 (zhuan)

    http://blog.csdn.net/marksinoberg/article/details/52006311 ***************************************** ...

  7. Struts2配置文件讲解

    解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt+/ 没有提示,这是因为” http://struts.apache.org/d ...

  8. 使用Freemarker创建word文档

    最近做一个项目,本来是直接在网页上查看文本信息,然后给客户直接打印的,但是发现也许是浏览器还是打印机的原因,总之,有个客户打印出来的格式始终与其他的不同,没办法,最后想到了直接将数据库中的信息生成一个 ...

  9. SpringMVC源码情操陶冶-FreeMarker之web配置

    前言:本文不讲解FreeMarkerView视图的相关配置,其配置基本由FreeMarkerViewResolver实现,具体可参考>>>SpringMVC源码情操陶冶-ViewRe ...

随机推荐

  1. C# 百度API地址坐标互相转换

    通过C#代码将地址字符串转为经纬度坐标,或者将经纬度转为具体的地址字符串,在不通外网的项目中是有需求的. 具体步骤: 一.创建BaiduMapHelper,用于定义地址信息和请求. public st ...

  2. Quartz.NET浅谈一 : 简单Job使用(定时发送QQ邮件)

    Quartz.NET是一个全功能的开源作业调度系统,可用于从最小的应用程序到大型企业系统. 直接上代码吧... 一.新建一个控制台项目 略过 二.安装Nuget包 三.创建发送邮箱辅助工具类 stat ...

  3. wpf防止界面卡死

    AsyncInvokeHelper.CallbackInvoke(new Action(() => { System.Threading.Tasks.Task.Factory.StartNew( ...

  4. tecplot-云图中显示等值线的值

    原版视频下载地址:https://yunpan.cn/cx6IQkkYKIB99  访问密码 a3ee

  5. docker nginx angular 刷新错误,404错误

    主要是router问题,两个解决方案 一个是修改angular项目的router选项,一个是修改Nginx的route 选项 一般情况下项目部署了,不愿意修改angular项目的router选项,所以 ...

  6. Python中_,__,__xx__方法区别

    _xx 单下划线开头 Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范. 方法就是以单下 ...

  7. 2018-2019-2 网络对抗技术 20165212 Exp7 网络欺诈防范

    2018-2019-2 网络对抗技术 20165212 Exp7 网络欺诈防范 原理与实践说明 1.实践目标 理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 2.实践内容概述 简单应 ...

  8. mapreduce入门程序之---wordcount

    mapreduce是hadoop生态中非常重要的一部分,顾名思义,主要分为两部分,map和reduce,他们各司其职,map的主要功能是用来对待处理的文档进行处理,主要是对数据进行按行读取,分割,然后 ...

  9. mosquitto设置用户名和密码

    https://blog.csdn.net/qq_22111417/article/details/84142509 7.设置用户名和密码 找到用户密码文件在安装bin下: 1: 打开mosquitt ...

  10. configure-nginx-how-to-handle-500-error-on-upstream-itself-while-nginx-handle 自定义header 传递header 定义拦截器

    应用程序拦截 nginx 拦截 保证 接口返回 https://serverfault.com/questions/859667/configure-nginx-how-to-handle-500-e ...