sexta-feira, 25 de abril de 2008

Javascript getElementById e taglibs Beehive NetUI

NetUI são taglibs do pacote MVC do Apache Beehive utilizadas em JSP's que geram diversos componentes de visão, entre eles, formulários HTML.
Em uma estrutura HTML, tipicamente utiliza-se o atributo ID para se identificar unicamente um objeto em uma estrutura DOM, prática comumente utilizada em Javascript.
Por definição W3C, não se pode ter dois nodes com o mesmo ID em um mesmo HTML.

O NetUI encapsula o ID de cada componente de forma que um vários portlets em um mesmo HTML não utilizem o mesmo ID e invalidem a estrutura.
Todo componente NetUI aceita o atributo tagId, o qual gerará um ID único no HTML, associando o nome do portlet e/ou JSP, mais o nome informado.
Para recuperar o nome real, é disponibilizada uma função Javascript:

getNetuiTagName("foo", this)

Onde "foo" é a ID informada no TagId, e this é a instância atual do portlet que você está trabalhando.
Essa função retorna uma string com o ID real renderizado no HTML. Pode se usar a estrutura form ou então diretamente o getElementById. Confira exemplo na documentação [1] do BEA WebLogic, que utiliza o Beehive como estrutura MVC.

[1] http://edocs.bea.com/workshop/docs81/doc/en/core/index.html

Nenhum comentário: