怀疑论者的JSF: JSF组件开发 - 编程入门网
getClientId (currentInstance), "id");
writer.writeAttribute("name", fieldComponent.getClientId (currentInstance), "name");
if(fieldComponent.getValue()!=null)
writer.writeAttribute("value", fieldComponent.getValue().toString (), "value");
writer.endElement("input");
}
}
怀疑论者的JSF: JSF组件开发(11)时间:2011-04-11 IBM Rick Hightower编码和解码 正如前面提到的,渲染器做的主要工作就是解码输入和编码输出。我先从解码开始,因为 它是最容易的。 FieldRenderer 的 decode 方法如下所示:
Label 组件不需要进行解码,因为它是一个 UIOutput 组件。Field 组件是一个 UIInput 组件,这意味着它接受输入,所以 必须 进行解码。decode 方法可以从会话、cookie、头、 请求等处读取值。在大多数请问下,decode 方法只是像上面那样从请求参数读取值。Field 渲染器的 decode 方法从组件得到 clientId,以标识要查找的请求参数。给定组件容器的路 径,clientId 被计算成为组件的全限定名称。而且,因为示例组件在表单中(是个容器), 所以它的 clientid 应当是 nameOfForm:nameOfComponent 这样的,或者是示例中的 cdForm:artist、cdForm:price、cdForm:title。decode 方法的最后一步是把提交的值保存 到组件(稍后会转换并验证它,请参阅 参考资料 获取更多关于验证和转换的内容)。 编码方法没什么惊讶的。它们与 Label 组件中看到的类似。第一个方法 encodeBegin, 委托给三个帮助器方法 encodeLabel、encodeInput 和 encodeMessage,如下所示:
encodeLabel 方法负责在出错的时候,把标签的颜色改成红色(或者在样式表中指定的其 他什么颜色),并用星号 (*) 标出必需的字段,如下所示:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |