Freemarker结合Blueprint和JQuery/Ext/JSCharts,动态组件

本文介绍了一种使用Freemarker模板引擎结合JQuery和自定义CSS框架Blueprint来构建灵活Web用户界面的方法。通过具体示例展示了如何集成JSChart插件绘制饼状图和柱状图,并实现了一个包含日期选择器和对话框的表格样例。

前段时间看有讨论web ui的,昨天一同学还向我吹嘘他们公司的UI多牛,jsp标签几百个。

我没那么牛,也没那么多精力,结合一前写的代码,整合了JQuery的一些Plugin和Blueprint(一css框架,强烈推荐),做了一些灵活的空间,写了几个例子,
分享给大家

下面是几个图

 

发现以这种思路做web ui还是可以尝试下的,不用ZK了,简单的我选择用JQuery,他的插件应该可以满足一般应用了,如果复杂的用Ext,一样在加载到浏览器之前,html和js甚至css都是用freemarker结合后台数据生成好的

 

源码和平时写html和js都一样,没什么区别

 

下面是两个例子文件目录和源码

 

<#import "/zftl/zftl-base.ftl" as page>
<#import "/zftl/zftl-jscharts.ftl" as chart>

<#assign basePath = page.beginPath in page />

<@page.page_header title="Demo Of ZFTL" widget_list=['chart','blueprint']>

</@page.page_header>

<@page.page_body>
<div class="container">
		<h1>JSChart integrated with Freemarker and JQuery</h1>
		<hr>
    <div class="column span-12">
   	<div class="notice">
      	Pie Chart Demo
      </div>		
      <fieldset>
        <legend>Pie Charts</legend>

    		  <p>
    		      		  <@chart.basic_pie />
    		  </p>
          
    		  <p>
    		  <div id="pie_graph">Loading graph...</div>
				<script type="text/javascript">
					
					var myData = new Array(['Jan', 2], ['Feb', 1], ['Mar', 3], ['Apr', 6], ['May', 8], ['Jun', 10], ['Jul', 9], ['Aug', 8], ['Sep', 5], ['Oct', 6], ['Nov', 2], ['Dec', 4]);
					var colors = ['#FFCC00', '#FFFF00', '#CCFF00', '#99FF00', '#33FF00', '#00FF66', '#00FF99', '#00FFCC', '#FF0000', '#FF3300', '#FF6600', '#FF9900'];
					var myChart = new JSChart('pie_graph', 'pie');
					myChart.setDataArray(myData);
					myChart.colorizePie(colors);
					myChart.setPiePosition(200, 180);
					myChart.setPieRadius(95);
					myChart.setPieUnitsFontSize(8);
					myChart.setPieUnitsColor('#474747');
					myChart.setPieValuesColor('#474747');
					myChart.setPieValuesOffset(-10);
					myChart.setTitleColor('#fff');
					myChart.setSize(300, 300);
					myChart.draw();
					
				</script>

    		  </p>
        
      </fieldset>   
    </div>
    <div class="column span-12 last">
    
      <div class="notice">
      	Bar Chart Demo
      </div>		
      <fieldset>
        <legend>Bar Charts</legend>

    		  <p>
    		  <@chart.basic_bar />
    		  </p>
          
    		  <p>
    		  <div id="graph">Loading graph...</div>

				<script type="text/javascript">
					
					var myData = new Array(['Jan', 2], ['Feb', 1], ['Mar', 3], ['Apr', 6], ['May', 8], ['Jun', 10], ['Jul', 9], ['Aug', 8], ['Sep', 5], ['Oct', 6], ['Nov', 2], ['Dec', 4]);
					var colors = ['#CE0000', '#EF2323', '#D20202', '#A70000', '#850000', '#740000', '#530000', '#850000', '#B00000', '#9C0404', '#CE0000', '#BA0000'];
					var myChart = new JSChart('graph', 'bar');
					myChart.setDataArray(myData);
					myChart.colorizeBars(colors);
					myChart.setDataArray(myData);
					myChart.setAxisColor('#9D9F9D');
					myChart.setAxisWidth(1);
					myChart.setAxisNameX('Months');
					myChart.setAxisNameY('Values');
					myChart.setAxisNameColor('#655D5D');
					myChart.setAxisNameFontSize(9);
					myChart.setAxisPaddingLeft(50);
					myChart.setAxisValuesDecimals(1);
					myChart.setAxisValuesColor('#9C1919');
					myChart.setTextPaddingLeft(0);
					myChart.setBarValuesColor('#9C1919');
					myChart.setBarBorderWidth(0);
					myChart.setTitleColor('#8C8382');
					myChart.setGridColor('#5D5F5D');
					myChart.draw();
					
				</script>
    		  </p>
        
      </fieldset>
    
    </div>
    <hr>
    
    <div class="column span-16 last">
    
	<div id="pie_chart_div">Loading graph...</div>

	<script type="text/javascript">
		var myData = new Array(['IE7', 26], ['IE6', 24.6], ['Firefox', 44.2], ['Safari', 2.6], ['Opera', 2.1]);
		var colors = ['#0673B8', '#0091F1', '#F85900', '#1CC2E6', '#C32121'];
		var myChart = new JSChart('pie_chart_div', 'pie');
		myChart.setDataArray(myData);
		myChart.colorizePie(colors);
		myChart.setTitle('W3schools browser statistics in August 2008 (%)');
		myChart.setTitleColor('#8E8E8E');
		myChart.setTitleFontSize(11);
		myChart.setTextPaddingTop(280);
		myChart.setPieValuesDecimals(1);
		myChart.setPieUnitsFontSize(9);
		myChart.setPieValuesFontSize(8);
		myChart.setPieValuesColor('#fff');
		myChart.setPieUnitsColor('#969696');
		myChart.setSize(616, 321);
		myChart.setPiePosition(308, 145);
		myChart.setPieRadius(95);
		myChart.setFlagColor('#fff');
		myChart.setFlagRadius(4);
		myChart.setTooltip(['Firefox','Including Mozilla and all Gecko browsers']);
		myChart.setTooltip(['IE6','Including IE5 and older browsers']);
		myChart.setTooltipOpacity(1);
		myChart.setTooltipBackground('#ddf');
		myChart.setTooltipPosition('ne');
		myChart.setTooltipOffset(2);
		myChart.setBackgroundImage('${page.beginPath}images/chart/chart_bg.jpg');
		myChart.draw();
	</script>

    </div>
    <hr>
	
    <p><a href="javascript:void();">JSCharts</a></p>   
</div>
</@page.page_body>

 

 

<#import "/zftl/zftl-base.ftl" as page>
<#import "/zftl/zftl-widget.ftl" as widget>

<#assign basePath = page.beginPath in page />

<@page.page_header title="Demo Of ZFTL" widget_list=['grid', 'blueprint', 'ui.pack']>
	<script>
	$(function(){
		$('.flexme').flexigrid({
			striped:false,
			title:'One Simple'
			});
			
		$("#birth").datepicker();
			
				// Dialog			
				$('#dialog').dialog({
					autoOpen: false,
					width: 500,
					height: 500,
					buttons: {
						"Ok": function() { 
							$.weeboxs.open($('#name').val(), {type:'warning'});
							// $(this).dialog("close"); 
						}, 
						"Cancel": function() { 
							$(this).dialog("close"); 
						} 
					}
				});
				
				// Dialog Link
				$('#dialog_link').click(function(){
					$('#dialog').dialog('open');
					return false;
				})
	});
	</script>
</@page.page_header>

<@page.page_body>
<div class="container">
<h3>Demo Of ZFTL Grid</h3>

<table class="flexme">
	<thead>
    		<tr>
            	<th width="100">Col 1</th>
            	<th width="100">Col 2</th>
            	<th width="100">Col 3 is a long header name</th>
            	<th width="300">Col 4</th>
            </tr>
    </thead>
    <tbody>
    		<tr>
            	<td>This is data 1 with overflowing content</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" id="dialog_link">Open Dialog</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
    		<tr>
            	<td>This is data 1</td>
            	<td>This is data 2</td>
            	<td>This is data 3</td>
            	<td>
			  	  <button type="button" class="button positive" onclick="">Positive</button>
			  	  <button type="button" class="button negative" onclick="">Negative</button>
				</td>
            </tr>
            
    </tbody>
</table>
<hr />
		<!-- ui-dialog -->
		<div id="dialog" class="span-8" title="Dialog Title">
		  <form id="dummy" action="" method="post">
          <p><label for="name">Your Name</label><br />
      		  <input type="text" class="text" id="name" name="name" value="Name"></p>
          <p><label for="pwd">Your Password</label><br />
      		  <input type="password" class="text" id="pwd" name="pwd" value="abc"></p>
          <p><label for="email">Your Email</label><br />
      		  <input type="text" class="text" id="email" name="email" value="your@mail.com"></p>
          <p><label for="email">Your Birth</label><br />
      		  <input type="text" class="text" id="birth" name="birth" value=""></p>
      		  
   		  <p><button type="submit" class="button">Submit</button>  </p>
      	  </form>
		</div>
</div>
</@page.page_body>
 

 

 

 

 

 

 

内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向与逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划与B样条优化技术,提升机械臂运动轨迹的合理性与平滑性。文中还涉及多种先进算法与仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模与求解,展示了Matlab在机器人控制、智能算法与系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动化、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学与动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划与轨迹优化提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合与智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模与神经网络控制的设计流程,关注算法实现细节与仿真结果分析,同时参考文中提及的多种优化与估计方法拓展研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值