Erro ao chamar minha Action: Struts 2

19 respostas
V

Pessoal, estou iniciando agora no Struts 2 e iniciei pelo básico, com um HelloWorld. Segui um exemplo, mas aparece o seguinte erro: Could not find action or result
There is no Action mapped for namespace / and action name HelloWorld. - [unknown location]

Alguém poderia dá uma olhada nesse codigo e dá uma ajuda?!
Código do meu struts.xml

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">   

<struts>
		<include file = "struts-default.xml" /> 
		<package name ="defaut" extends ="struts-default">
		<action name ="HelloWorld" class="action.HelloWorld">
			<result >/HelloWorld.jsp</result>
		</action>
	</package>
</struts>

codigo da minha action:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {
	private static final String MESSAGE = "Struts estar sendo executado!";
	
	public String execute(){
		setMessage(MESSAGE);
		return "sucess";
	}
	
	private String message;
	public void setMessage(String message){
		this.message = message;
	}
	public String getMessage(){
		return message;
	}

}

codigo da minha JSP:

<%@ taglib prefix = "s" uri = "/struts-tags" %>
<html>
	<head>
		<title>Hello World</title>
	</head>
	<body>
		<s:property value="message"/> 
	</body>
</html>

19 Respostas

C

ta colocando .action na sua url ??

C

Onde vc está chamando sua action? Não vejo vc a chamando na sua jsp, apenas vejo vc referenciando o seu atributo.

V

estou sim.
faço a chamada da seguinte forma: http://localhost:8080/ProjetoStruts/HelloWorld.action

V

eh verdade, na minha pagina JSP, nao chamo uma action, mas nos exemplos que vi tbm nao chamava…
so mando direcionar para HelloWorld.jsp no struts.xml

C

Tenta desta forma:

&lt;s:push value="HelloWorld.action"&gt;
    &lt;s:property value="message" /&gt;
&lt;/s:push&gt;
V

fiz a alteração… dentro do corpo da minha JSP, mas mesmo assim nao encontrou a action… mesmo erro.
type Status report

message There is no Action mapped for namespace / and action name HelloWorld.

description The requested resource (There is no Action mapped for namespace / and action name HelloWorld.) is not available.

E

Opa!

Tenta alterar essa linha no struts.xml

<result>/Hell......</result>

para

<result name="success">/Hel....</result>
V

tinha tentado isso já, mas agora fiz novamente e o erro persiste em aparecer… ô HelloWorld pra da trabalho esse!

C

Olha eu criei uma página teste.jsp e coloquei:

&lt;s:url action="HelloWorld" /&gt;

Desta maneira ela chama a Action executa o metodo execute e seta a mensagem, porém ela não chama o metodo get da Action e então aparece o endereço da action na tela

usei a seguinte url pra chamar: http://localhost:8080/ProjetoStruts/teste.jsp

C

Eu fiz um Hello World aqui, ta explicando todos os passos, c vc quiser tentar fazer:

V

se na HelloWorld.jsp eu passar <s:url action=“HelloWorld” /> e chamar no browser HelloWorld.jsp aparece o seguinte: /ProjetoStruts/HelloWorld.action
a extensão nao tem que ser .action?!

V

onde colocou

<action name ="HelloWorld" class="action.HelloWorld">

troque por

<action name ="Helloworld" class="action.HelloWorld">

tirando o W de maiúsculo!!

agora na url coloque
http://localhost:8080/ProjetoStruts/helloworld.action .
tive alguns problemas quando colocava o nome da action com mais de uma letra maiúscula!
Uso annotation, mais creio que possa ser o mesmo erro.

V

nã, insiste no mesmo erro!!! oq será essa praga!

type Status report

message: There is no Action mapped for namespace / and action name Helloworld.

description: The requested resource (There is no Action mapped for namespace / and action name Helloworld.) is not available.

V

Pessoal, resolvi segui o exemplo que o cris tinha feito… no entanto ainda insiste em aparecer o erro: SEVERE: Could not find action or result
There is no Action mapped for namespace / and action name Hello. - [unknown location]

Alguém poderia dizer o porque desse erro?!

segue o novo codigo da classe HelloWorld.java:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {
	
	public HelloWorld(){
		
	}
	
	private String message;
	public String execute(){
		message = "Hello World !!!!!!!!!!";
		return "sucess";
	}	
	
	public void setMessage(String message){
		this.message = message;
	}
	public String getMessage(){
		return message;
	}

}

codigo da JSP HelloWorld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello Struts 2</title>
</head>
<body>
<%@ taglib prefix="s" uri="/struts-tags"%>
Hello Struts 2 <s:property value="message"/>
</body>
</html>

codigo do struts.xml

<?xml version="1.0" encoding="UTF-8" ?> 
  <!DOCTYPE struts (View Source for full doctype...)> 
- <struts>
  <include file="struts-default.xml" /> 
- <package name="defaut" extends="struts-default">
- <action name="Hello" class="action.HelloWorld">
  <result name="sucess">HelloWorld.jsp</result> 
  </action>
  </package>
  </struts>

codigo da pagina index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	<title>Index - Hello World Struts 2</title>
	</head>
	<body>
		<%@ taglib prefix="s" uri="/struts-tags"%>
		<s:a href="Hello.action">Clique aqui!</s:a>
	</body>
</html>
C

Olá Vinícius,

Acabei de baixar o projeto do blog, adicionei as libs e rodou normalmente.

Tentei fazer o seu projeto porém insiste na exception, muito estranho, pois ele diz não está encontrando o mapeamento da Action ou o resultado, neste caso, success, porém aparentemente o mapeamento parece estar correto.

V

pois eh cris, não consigo enxergar o que pode está errado! será algum problema com o Struts? ou eh preciso rodar alguma coisa antes para que comece a aceitar novas aplicações? não sei! pois como vc falou, não consigo achar nenhum erro quanto ao mapeamento, alguem poderia me ajudar e dizer o porque meu projeto nao roda?! Alguem poderia me dizer qual é o problema?! vlw

C

Qual versão vc está usando?

V

a versão eh a 2.0.14.
ainda nao consegui resolver o problema…

C

No exemplo que eu te mostrei do blog eu estou utilizando a versão 2.0.11, me lembro que tive alguns problemas com a versão 2.0.14 por isso utilizei a anterior, tenta trocar a versão, não custa tentar!!

Criado 28 de abril de 2009
Ultima resposta 4 de mai. de 2009
Respostas 19
Participantes 5