在Netbeans 6.1中使用dojo开发自定义的JSF组件

本文介绍如何在NetBeans 6.1 Beta环境下开发一个简单的JSF Woodstock组件,并将其改造为支持Dojo和JSON的组件。文章涵盖组件创建过程、编码技巧以及如何利用FireBug进行调试。

0.准备和目的

前提:netbeans 6.1 beta。

目的:开发一个功能最简的JSF woodstock组件。

准备:Firefox + FireBug插件

 

1。新建一个普通的JSF组件

具体可以参考sun的教程 ,可以忽略其附加的高级功能,在IDE环境中可以很快的开发出一个标准JSF组件出来。

public class ImageRenderer extends javax.faces.render.Renderer{  

一切皆为标准的JSF组件。Renderer可以只考虑最简单的输出,不考虑viewstate。

然后,因为netbeans中页面使用的是xhtml的技术,将该tag运用到其中需如下工作:

xmlns:k="/WEB-INF/tlds/rrr"
 

这里没有考虑design-time的所需要的类。

2。woodstock组件

在前面的组件开发中,代码量比较大地方的在Renderer中的encodeBegin方法。这个方法主要用来产生客户端HTML代码,大量的使用了诸如如下的代码:

writer.startElement("img", imgComponent);
writer.writeAttribute("onClick", "javascript:" + postBackFuncName + "(this)", null); 

有些类似在Servlet输出HTML用到的out.println(),这种方法较之JSP之类的模板技术显得非常的蹩脚。于是在netbeans 6中引入了dojo和json,用来将逻辑和展现分离。如今javascript框架遍地开花,server端越来越多的页面渲染的工作交给了javascript,比如Rails使用了prototype,框架的使用大大的提高了javascript的潜能和开发效率。

woodstock 也即原来的jsf web ui,是Sun的一个JSF的实现,跟标准不同的是提供了更多的组件和AJAX support。如其button Renderer产生client html source code如下:

<span id="j_id17">
<script type="text/javascript">
  webui.suntheme.widget.common._createWidget('j_id17',
  {"id":"form1:button2","widgetType":"webui.suntheme.widget.button",
"visible":true,"primary":false,"value":"Button",
"escape":true,"mini":false,"disabled":false});
</script></span>

  不同于一般的<button name="" value=""/>“明文”的形式。这里调用的函数_createWidget基于dojo的功能,而{}的属性由在server段的Renderer中的java代码组装出来(利用json API),剩下的渲染工作都是client的浏览器中完成。

 3.将标准组件改造成woodstock组件

将标准JSF组件该为webui组件

import com.sun.webui.jsf.renderkit.widget.RendererBase;
public class MyRenderer extends RendererBase {

 这个类注意的地方不多,只要注意getWidgetType这个方法:

    protected String getWidgetType(FacesContext context, UIComponent component) {
        return "fan.kao";
    }

 这里返回的字符串代表新组件的名称,也是组件在dojo中的namespace。

 

在JSP中,由于该新的组件是woodstock本身没有的,为了避免修改原有的组件库的包,需要在页面中注册这个新的组件:

<script>webui.suntheme.dojo.registerModulePath("fan","/WebApplication1");</script>

这样,就可以把根目录下的js文件纳入dojo的module装载路径。

 至此,所有Java相关的工作已经完成,剩下的就和在dojo创建一个widget的过程一样,包括一个js文件,一个templete文件。

 

在开发过程中,可以使用FireBug插件来调试js相关的问题,dojo也对FireBug做了相应的支持。

 

 

提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值