首页 / 知识
关于java:JSF Lifecycle和Custom组件
2023-04-13 13:33:00

JSF Lifecycle and Custom components关于在JSF中开发自定义组件,我很难理解一些事情。出于这些问题的目的,您可以假定所有自定义控件都使用值绑定/表达式(而不是文字绑定),但是我也对它们的解释感兴趣。 我已经尝试了几种组合,但是总会以难以发现的错误结束,我认为这些错误来自事件生命周期的基本误解。 JSF规范中有一个很好的图表,它显示了请求生命周期-这对于理解这些内容至关重要。 这些步骤是:
这是事件的某种简化版本。有关更多详细信息,请参考规范。 我会问为什么您要编写自己的UIComponent。这是一项艰巨的任务,需要对JSF架构有深入的了解才能使其正确。如果需要自定义控件,则最好创建一个具体的控件,以使用等效的渲染器扩展现有的UIComponent(如HtmlInputText一样)。 如果污染不是问题,那么可以使用Apache MyFaces形式的开源JSF实现。 在"调用应用程序"阶段(即最终"渲染响应"阶段之前的最后一个阶段),将调用诸如CommandButton之类的操作侦听器。这在JSF生命周期-图1中显示。
当您考虑目标时,JSF背后的一些设计决策开始变得更有道理。 JSF被设计为可工具化的-它公开了许多用于IDE的元数据。 JSF不是Web框架-它是可以用作Web框架的MVP框架。 JSF具有高度的可扩展性和可配置性-您可以在每个应用程序的基础上替换90%的实现。 如果您只想添加一个额外的HTML控件,那么大多数这些事情只会使您的工作变得更加复杂。
我假设基于JSP包含/基于工具的页面片段不符合您的要求。 我会考虑使用您的UIComponentELTag.createComponent创建一个具有UIPanel基础的复合控件,并从现有实现中创建其所有子级。 (我假设您正在使用JSP / taglibs并做出其他一些猜测。)如果现有的UIPanel渲染器都没有做此工作,则可能需要自定义渲染器,但是渲染器很简单。
我发现最好的文章是Jsf Component Writing,
这是如何进入getValueBinding的?
|
最新内容
相关内容
linux安装组件包命令?
linux安装组件包命令?,软件,官网,服务,系统,工具,发行,工作,信息,名称,命令,Linux安装软件的命令是什么?1、最后依次输入以下命令:./configurelinux7网卡绑定命令?
linux7网卡绑定命令?,网络,系统,状态,地址,设备,信息,情况,网卡,模式,命令,Linux下双网卡绑定七种模式目前网卡绑定mode共有七种(0~6)bond0、bpython的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython绑定方法与非绑定方法
Python绑定方法与非绑定方法,方法,名字,培训,工具,对象,函数,定义,参数,说法,内部,python类中定义的函数分为两大类1:绑定方法(绑定给谁,谁来调Python绑定方法与非绑定方法
Python绑定方法与非绑定方法,方法,名字,培训,工具,对象,函数,定义,参数,说法,内部,python类中定义的函数分为两大类1:绑定方法(绑定给谁,谁来调pythonTKinter的绑定方法
pythonTKinter的绑定方法,培训,方法,全局,实例,参数,事件,快捷键,以上,操作,更多,python中TKinter的绑定方法1、bind_all全局绑定,默认是全局pythonTKinter组件的使用
pythonTKinter组件的使用,培训,组件,布局,面板,附属,实例,属性,以上,案例,消息,python中TKinter组件的使用1、创建总面板。2、在面板上创建各python方法的绑定和未绑定
python方法的绑定和未绑定,培训,方法,对象,实例,函数,参数,定义,静态,以上,不是,python方法的绑定和未绑定1、说明未绑定对象的方法:无self参关于c#:WinForms数据绑定和外键关系
关于c#:WinForms数据绑定和外键关系,关于c#:WinForms数据绑定和外键关系,应用程序,数据绑定,希望,开发,WinForms databinding and foreig关于数据绑定:Silverlight 2 Beta 2
关于数据绑定:Silverlight 2 Beta 2中的Databind RenderTransform缩放,关于数据绑定:Silverlight 2 Beta 2中的Databind RenderTrans从Powershell访问.NET组件
从Powershell访问.NET组件,从Powershell访问.NET组件,组件,实用程序,控制台,自己的,Accessing .NET components from Powershell我想关于c#:如何在运行时后期绑定32位/6
关于c#:如何在运行时后期绑定32位/64位库,关于c#:如何在运行时后期绑定32位/64位库,用于,加载,3D,程序集,How to late bind 32bit/64 b