html页面数据的维护

在Java Web开发中,后台页面开发技术使用JSP,有时候我们需要维护两份数据,一份是后台传递的数据,还有一份是js产生的数据,这两份数据维护起来还是比较麻烦的,

当一个新人接触一个已开发完的项目,现在他需要维护这些数据,需要做相应的修改,那么有两个麻烦:

a) 修改了一个却忘记修改另一个

b) 测试验证的时候需要做相应的操作才能验证是否修改正确

那么问题来了,如何解决这个问题呢?

根据要填充的数据设置一个html模板:这样可以避免直接在js中拼接html元素,造成后续的一个维护难度。

具体作法如下:

html模板:showdata.html

<tr>
    <!-- 自定义属性 -->
    <td>{name}</td>
    <td>{address}</td>
    <td>{age}</td>
    <td>
        <a οnclick="daleteStu('{name}')" href="javascript:void(0);">删除</a>
    </td>
</tr>
页面:testtemplate.jsp

<%@ page language="java" pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
  </head>
  
  <body>

  	<script type="text/template_showdata">
  		<%@ include file="/htmltemplate/showdata.html" %>
  	</script>
  	
  	<table id="tableData"></table>
  </body>
  <script type="text/javascript" src="<%=basePath %>/js/jquery-1.7.2.js"></script>
  <script type="text/javascript" src="<%=basePath %>/js/testtemplate.js"></script>
</html>

js: testtemplate.js

$(function() {
	
	var html = $("script[type='text/template_showdata']").html();
	
	var dta = {
	    "rows": [{
	        "name": "李四",
	        "address": "湖南长沙市",
	        "age": 20
	    }, {
	    	"name": "张三",
	        "address": "北京朝阳区",
	        "age": 30
	    }, {
	    	"name": "王五",
	        "address": "浙江杭州市",
	        "age": 25
	    }]
	};
	
	 //定义一个数组,用来接收格式化合的数据  
    var arr = [];  
    //对数据进行遍历  
    $.each(dta.rows, function(i, o) {  
        //这里取到o就是上面rows数组中的值  
        arr.push(formatTemplate(o, html));  
    });  
    //好了,最后把数组化成字符串,并添加到table中去。  
    $('#tableData').append(arr.join(''));  
});

function formatTemplate(dta, tmpl) {
    //格式化内容,指定要格式化的字段名和格式化函数
    var format = {
        name: function(x) {
            return x
        }
    };
    return tmpl.replace(/{(\w+)}/g, function(m1, m2) {
        if (!m2)
            return "";
        return (format && format[m2]) ? format[m2](dta[m2]) : dta[m2];
    });
}
根据html模板,最后生成的html内容为:

<table id="tableData">
 <tr>
    <!-- 自定义属性 -->
    <td>李四</td>
    <td>湖南长沙市</td>
    <td>20</td>
    <td>
        <a οnclick="daleteStu('李四')" href="javascript:void(0);">删除</a>
    </td>
</tr>


  	
  <tr>
    <!-- 自定义属性 -->
    <td>张三</td>
    <td>北京朝阳区</td>
    <td>30</td>
    <td>
        <a οnclick="daleteStu('张三')" href="javascript:void(0);">删除</a>
    </td>
</tr>

  <tr>
    <!-- 自定义属性 -->
    <td>王五</td>
    <td>浙江杭州市</td>
    <td>25</td>
    <td>
        <a οnclick="daleteStu('王五')" href="javascript:void(0);">删除</a>
    </td>
</tr>
</table>


上述操作过后,以后在js中只需要设置相应的数据,进行填充就好了,样式的设置还是在html中,这样好维护一些





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来了就走下去

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值