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
JSP em branco
6 Respostas
Continuando. O arquivo struts.xml na pasta /WEB-INF/classes:
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.
Verifique os seguintes pontos :
-
Você está chamando a sua página direto ou está chamando através da Action do Struts ?
-
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.
-
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.
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.
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
É 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 !
Perfeito Luis.
Perfeito Bruno.
Funcionou.
Agora eu posso continuar os estudos através do tutorial.
Muito obrigado e um grande abraço a todos.