Para que métodos estáticos de classes Java sejam executados ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado
A afirmativa sugere erroneamente que, para executar métodos estáticos de classes Java a partir das funções da linguagem de expressão em JSP (JavaServer Pages), os nomes das funções em JSP precisam coincidir com os nomes dos métodos da classe Java. No entanto, isso não é uma exigência na tecnologia JSP.
Em JSP, a linguagem de expressão (Expression Language - EL) nos permite acessar dados armazenados em objetos, como beans, de uma maneira muito mais simples do que o antigo código Java embutido nas páginas JSP. No entanto, EL por si só não é capaz de chamar métodos estáticos diretamente.
Para utilizar métodos estáticos de uma classe Java em uma página JSP, geralmente fazemos uso de uma tag library (biblioteca de tags) que possa fornecer essa funcionalidade. Uma tag library pode definir funções que podem ser usadas na EL, e essas funções podem estar mapeadas para métodos estáticos de classes Java. Contudo, o nome da função na tag library não precisa necessariamente ser o mesmo que o nome do método estático. A correspondência entre o nome da função na EL e o método estático é definida no arquivo de descrição da tag library (TLD - Tag Library Descriptor), e o desenvolvedor pode nomear a função de EL como preferir.
Portanto, é incorreto afirmar que os nomes das funções em JSP devem coincidir com os nomes dos métodos estáticos nas classes Java, pois essa correspondência é flexível e definida no TLD. Esse mecanismo oferece uma camada de abstração que permite aos desenvolvedores criar uma interface mais amigável para os métodos estáticos quando utilizados nas páginas JSP.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
<function> <name>equals</name> <function-class>mypkg.MyLocales</function-class> <function-signature>boolean equals( java.lang.String, java.lang.String )</function-signature></function>http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html
Na página index.jsp, que importa a biblioteca
/functions
e invoca a função igual em uma expressão:
<%@ taglib prefix="f" uri="/functions"%>... <c:when test="${f:equals(selectedLocaleString,localeString)}" >
A função na classe Java seria:
package mypkg;public class MyLocales { ... public static boolean equals( String l1, String l2 ) { return l1.equals(l2); }}
<function> <name>igual</name> <function-class>mypkg.MyLocales</function-class> <function-signature>boolean equals( java.lang.String, java.lang.String )</function-signature></function>
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo