JSP em branco

6 respostas
C

Senhores, estou começando com struts2 e estou usando como base o struts2-blank-2.0.1.war Quando eu executo a aplicação, eu não recebo erro mas nada aparece na página jsp. Apenas o título. A impressão que eu tenho é que o struts.xml não está sendo lido. Alguém pode me dar uma ajuda?
Obrigado

6 Respostas

C

Continuando. O arquivo struts.xml na pasta /WEB-INF/classes:

/HelloWorld.jsp

Tenho ainda a classe HelloWorld:

package tutorial;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {

public static final String MESSAGE = "Struts is up and running ...";

public String execute() throws Exception {
    setMessage(MESSAGE);
    return SUCCESS;
}

private String message;

get e set message

}

e a página jsp:

<%@ taglib prefix=“s” uri="/struts-tags" %>

Hello World!

O web.xml:

<filter>
    <filter-name>struts</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    <init-param>
    	<param-name>actionPackages</param-name>
    	<param-value>com.mycompany.myapp.actions</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Agradeço uma ajuda.

luis.soares

Verifique os seguintes pontos :

  1. Você está chamando a sua página direto ou está chamando através da Action do Struts ?

  2. Quando você define no início da sua jsp, a taglib “s”, você precisa especificar a qual TLD ela corresponde. Existem vários TLD´s do Struts : logic, html, bean, etc.

  3. Você esta seguindo algum tutorial ? Se não estiver, sugiro que siga alguma. Aqui no GUJ e também no www.portaljava.com.br existem tutoriais, além do google.

Abraço.

C

OK, Luis. Obrigado por sua resposta. Aqui estão os tópicos que você questionou:

1) Você está chamando a sua página direto ou está chamando através da Action do Struts ?
R: Estou chamando diretamente: http://localhost:8080/learnStruts2/HelloWorld.jsp

2) Quando você define no início da sua jsp, a taglib “s”, você precisa especificar a qual TLD ela corresponde. Existem vários TLD´s do Struts : logic, html, bean, etc.
R: Eu copiei a jsp do tutorial. Por isso não coloquei uma TLD

3) Você esta seguindo algum tutorial ? Se não estiver, sugiro que siga alguma. Aqui no GUJ e também no www.portaljava.com.br existem tutoriais, além do google.
R: Sim. Sigo um passo a passo do endereço: http://struts.apache.org/2.x/docs/bootstrap.html

Obrigado e aguardo alguma outra ajuda.
Abraços.

brunoviana

Bem eu estou começando agora, portanto me corrijam se eu estiver errado…

<action name=“HelloWorld” class=“tutorial.HelloWorld”>

… nesta linha do XML voce esta dando um nome a action, portanto eu acho que o endereço que vc deve acessar seria:
http://localhost:8080/learnStruts2/HelloWorld

luis.soares

É exatamente o que o Bruno Viana colocou. Você deve chamar a Actione não diretamente a sua página. Chamando a action, ela vai passar pelo seu método Execute(), que irá setar a mensagem e invocar a sua página. Então deve funcionar.

Portanto, ao invés disso :

http://localhost:8080/learnStruts2/HelloWorld.jsp

faça :

http://localhost:8080/learnStruts2/HelloWorld

Faça o teste e retorne.

Abraço !

C

Perfeito Luis.
Perfeito Bruno.
Funcionou.
Agora eu posso continuar os estudos através do tutorial.
Muito obrigado e um grande abraço a todos.

Criado 13 de dezembro de 2006
Ultima resposta 14 de dez. de 2006
Respostas 6
Participantes 3