Notes
Standard Actions I
Content of the notes (18)
Page 1
Agenda
Nesse vídeo discutiremos:
Ações padrão JSP ( JSP Standard Actions ). Criaremos um trecho de código utilizando as actions padrão a seguir:
jsp:useBean, com os atributos id, scope, type e class.
jsp:getProperty
jsp:setProperty
Atributos 'Type' (usados com ou sem class)
Page 2
Standard Actions
Uma ação padrão JSP pode ser usada para eliminar todo o código de script.
Um non-Enterprise JavaBean possui propriedades cujos valores podem ser configurados e obtidos por meio de métodos.
Nessa apresentação discutiremos as tags de ações padrão JSP ( JSP Standard Actions tags ) relacionadas à criação de beans, uso de métodos getter / setter para se obter / configurar propriedades de um bean
Page 3
Standard Actions (2)
As três 'JSP Standard Action tags' usadas com um JavaBean são:
Page 4
< jsp:useBean >
Abaixo vemos um exemplo de utilização da tag < jsp:useBean >
class -> define o tipo da classe do bean.
id -> identificador do objeto, atua da mesma forma que um nome de variável.
scope -> o escopo no qual o bean está sendo criado / obtido que pode ser "page","request","session" ou "application".
A tag 'jsp:useBean' irá criar um novo bean caso o container não possa encontrá-lo nesse escopo em particular.
Page 5
< jsp:getProperty >
Abaixo vemos um exemplo de utilização da tag jsp:getProperty.
Aqui estamos obtendo o valor da propriedade "name" do bean cujo id em < jsp:useBean > é "apt", ou seja, a variável que referencia o bean.
O atributo id da tag jsp:useBean deve coincidir com a propriedade name da tag jsp:getProperty!
Page 6
< jsp:setProperty >
O trecho de código abaixo configura o valor da propriedade "name" de um bean referenciado como "apt" pela propriedade id da tag jsp:useBean. Sendo assim, o nome do bean é "apt" para a tag jsp:setProperty.
Caso a tag jsp:setProperty seja utilizada no corpo da tag jsp:useBean, então o código de jsp:setProperty será executado somente se o bean não for encontrado e nesse caso, um novo bean será criado. Exemplo:
Page 7
Scope
Se o atributo scope não for especificado na tag jsp:useBean ou na tag jsp:getProperty, o container assumirá que se trata do escopo padrão que é page.
Page 8
Bean class : apt.java
Abaixo vemos uma classe bean que configura (através de setName()) a propriedade name do bean e obtém (através do atributo getName()), a propriedade name do bean.
Page 9
Servlet Bean_servlet
O servlet abaixo é utilizado para configurar a propriedade do bean criado no slide anterior (apt), configurando sua propriedade name para o valor "Hibiscus", e colocando o bean como um atributo do escopo de requisição através da chamada a request.setAttribute("apt",p);
Também irá transferir a controle da execução da requisição para a página jsp jspbean.jsp através dos comandos:
RequestDispatcher dis=
request.getRequestDispatcher("jspbean.jsp");
dis.forward(request,response);
Page 10
jspbean.jsp
Quando a requisição é encaminhada para jspbean.jsp pelo servlet BeanServlet, a página JSP irá completar a requisição imprimindo o valor da propriedade name do bean criado na variável de requisição apt. A propriedade é impressa através das tags:
< jsp:useBean id="apt" class="hello.apt" scope="request" />
A tag acima é utilizada para inicializar o atributo bean, obtendo-o a partir do escopo de requisição "apt" que referencia um objeto da classe bean apt. Nessa tag podemos ver que o atributo class referencia o pacote e o nome da classe do bean.
< jsp:getProperty name="apt" property="name" />
A tag acima retorna o valor da propriedade name do bean "apt" inicializado.
Page 11
web.xml
Configuração do arquivo web.xml que mapeia o servlet para um valor de URL de modo que o browser possa fazer requisições a ele.
Note que na tag servlet-class temos que informar junto ao nome da classe o caminho completo onde está localizado o bean, ou seja, o pacote hello onde ele se encontra.
Page 12
Saida produzida por jspbean.jsp
Após configurar o bean como um atributo no escopo de requisição, o servlet Bean_servlet irá encaminhar a requisição para a página JSP jspbean.jsp que exibirá o bean na tela através das tags jsp:useBean e jsp:getProperty, conforme vimos. Abaixo está a saída produzida pela página JSP.
Page 13
O atributo type
O atributo type faz uma referência a algo que a classe pode ser, ou seja, referencia o tipo da variável que abriga o objeto referido por class.
Lembrar:
type é o tipo da referência
class é o tipo do objeto
type deve ser do mesmo tipo de class ou então uma super-classe de class. Isso diz que class é subclasse de type.
Page 14
O atributo type (2)
Vamos exemplificar: considere uma super-classe Área ( a qual é uma classe abstrata ) que tem uma propriedade "name", conforme desenho abaixo:
Podemos ter um uso para a tag jsp:useBean conforme abaixo.
Nesse exemplo, type é uma classe abstrata e class é o objeto referenciado por type, ou seja, class é a subclasse concreta Apt.
Page 15
O atributo type (3)
'type' pode ser uma classe, qualquer tipo abstrato ou então uma interface.
'class' deve ser uma subclasse ou subtipo de 'type'.
O bean deve realmente existir no escopo especificado caso 'type' seja usado sem 'class'.
O exemplo abaixo funcionará perfeitamente caso o atributo bean "apt" já existir no escopo de requisição.
Page 16
O atributo type (3)
'class' nunca deve ser tipo abstrato em hipótese alguma ( com ou sem a presença de type ).
'class' precisa ter um construtor público sem argumentos
Page 17
Compilação das classes Bean_servlet.java e apt.java
Para compilar as classes Bean_servlet.java e apt.java, considerando que as variáveis de ambiente do Java já estão configuradas, utiliza o comando a seguir:
Page 18
Conclusão
Nessa apresentação discutimos as action tags JSP padrão:
jsp:useBean
jsp:setProperty
jsp:getProperty
Vimos um programa que ilustra as action tags padrão JSP.
Information
- Description
- Concursos Públicos Desenvolvimento de Software (OCEJWCD 6 ONLINE COURSE) Note on Standard Actions I, created by Luis Felipe Guariento on 02/03/2018.
- Created by
- Luis Felipe Guariento
- Views
- 8
- Rating