JSF 技术内幕
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSF 技术内幕
当扫瞄器首先衔接到http://localhost:8080/faces/ind.xhtml时,JSF实现初始化JSF代码并读取index.xhtml页面。
这个页面包含诸如h:inputText等JSF标签。
每个标签都有一个相关的标签处理程序类。
当读取该页面时,执行相应的标签处理程序。
JSF标签处理程序彼此配合来构建一棵组件树。
组件树是一种数据结构,其中包含JSF页面上全部用户界面元素的Java对象。
例如UIInput对象分离对应于JSF文件中的h:inputText和h:inputSecret字段。
接着展现HTML页面。
除JSF标签外的全部文本挺直显示。
h:fo、h:inputText、h:inputSecret 和h:commandButton标签则被转换为HTML。
其中每个标签都调用相关的组件。
每个组件有一个展现器以生成HTML输出,反映组件状态。
例如,与h:inputText标签对应的组件展现器生成以下输出: input type="text" name="ue ID" value="current value"/ 这个进程称为编码。
UIInput对象的展现器要求JSF实现查找表达式的唯一ID和当前值。
默认状况下,由JSF实现指定ID字符串。
ID看上去是随机的。
编码页被发送到扫瞄器,扫瞄器按通常的方式显示它。
当在扫瞄器中显示页面后,用户填写表单字段并单击登录按钮。
扫瞄器将表单数据发回到Web服务器,格式化为一个POST哀求。
这是一种特别格式,并被定义为HTML协议的一部份。
POST哀求包含表单的URL (/faces/index.xhtml)以及表单数据。
注重:POST哀求的URL与展现表单的哀求的URL一样。
在提交表单后,将导航到新页面(因为这个缘由,扫瞄器中显示的URL通常比所显示JSF页面的URL晚一步)。
表单数据是ID/值对形式的字符串,用法“”衔接多个键。
作为正常哀求处理的一部份,表单数据位于全部组件都可以拜访的Hash表中。
接下来,JSF实现为每个组件提供了一个检查Hash表的机会,这个过程称为解码。
每个组件自行打算如何说明表单数据。
登录表单有三个组件对象:两个UIInput对象(与表单的文本字段对应)和一个UICommand对象(与提交按钮对应)。
UIInput组件更新value特性
第1页共3页。