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;
}
}
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
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?!
<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.
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;
}
}
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.
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
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!!