Fala galera,
estou fazendo uma aplicacao e estou usando o DispatchAction
so que esta dando o erro 404.
o codigo eh o seguinte:
struts-config.xml
<action path="/ServletManutenirFuncionario"
type = "ServletAction.ServletManutenirFuncionario"
name="ServletManutenirFuncionarioForm"
parameter="metodo">
<forward name="success" path="/pages/funcionario.jsp">
</forward>
</action>
na minha jsp ta assim :
<form action="ServletManutenirFuncionario.do?metodo=pesquisarPorNome" method="post" >
<input type="text" alt="Digite o nome do funcionario que deseja pesquisar"
name="nomeFunc" maxlength="30">
<input type="image" src="/imagens/bt_pesquisar_lupa.gif" name="pesquisar">
</form>
Obrigado
a princípio parece que está correto…
a requisição está chegando na action?
verifique isto.
verifique também se a jsp que você informou está no diretório certo.
se for possível poste o código da action.
cara nao chega a entrar na action nao, o codigo esta ai .
public class ServletManutenirFuncionario extends DispatchAction {
private static final String FOWARD_SUCCESS = "success";
private static final String FOWARD_FAIL = "fail";
public ActionForward pesquisarPorNome(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
HttpSession secao = request.getSession();
// verificacao caso o usuario tenha digitado um modulo na barra de endereco no qual nao tem acesso
// e tbm para garantir a seguranca que o ususario nao esta acessando um modulo que nao pode.
secao.removeAttribute("listaFuncionarios");
secao.removeAttribute("acesso");
if (! new Verifica().verificaModulos("cliente", (ArrayList) secao.getAttribute("modulos"))){
secao.setAttribute("acesso","O usuário atual não contem acesso a este modulo. Favor contactar o Gestor do Sistema.");
return mapping.findForward("fail");
}
ServletManutenirFuncionarioForm myForm = (ServletManutenirFuncionarioForm) form; //formbean
String foward = FOWARD_SUCCESS; //retorno do mapping.findFoward
String nome = null; //nome para pesquisar o funcionario
nome = myForm.getStrNome();
ArrayList listaFuncionarios = new ArrayList();
FuncionarioDelegate objFunc = new FuncionarioDelegate();
listaFuncionarios = objFunc.pesquisaFuncPorNome(nome);
if ((listaFuncionarios == null) || (listaFuncionarios.size() <= 0)){
foward = FOWARD_FAIL;
request.setAttribute("msgErro","Não contém funcioanrio para " +
"" + nome + " cadastrado no sistema. ");
}
else{
secao.setAttribute("listaFuncionarios",listaFuncionarios);
}
return mapping.findForward(foward);
}
Obrigado pela forca
então ele não está achando o ServletManutenirFuncionario.do
vc mapeou a action do struts no web.xml?
tenta mudar o action do teu form para
action="/ServletManutenirFuncionario.do?metodo=pesquisarPorNome"
onde você dá o submit no form?
É bastante válido também ler o que está no console… os erros são bem mais claros lá…
Mas verificar o mapeamento na web.xml era o que eu diria, também.
Galera o mapeamento no web.xml esta correto
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>ServletValidaUsuario</servlet-name>
<servlet-class>ServletAction.ServletValidaUsuario</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletValidaUsuarioForm</servlet-name>
<servlet-class>ServletForm.ServletValidaUsuarioForm</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletLogout</servlet-name>
<servlet-class>ServletAction.ServletLogout</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletVenda</servlet-name>
<servlet-class>ServletAction.ServletVenda</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletUsuario</servlet-name>
<servlet-class>ServletAction.ServletUsuario</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletManutenirFuncionario</servlet-name>
<servlet-class>ServletAction.ServletManutenirFuncionario</servlet-class>
</servlet>
<servlet><servlet-name>ServletManutenirFuncionarioForm</servlet-name><servlet-class>ServletForm.ServletManutenirFuncionarioForm</servlet-class></servlet><servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletValidaUsuario</servlet-name>
<url-pattern>/ServletValidaUsuario</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletValidaUsuarioForm</servlet-name>
<url-pattern>/ServletValidaUsuarioForm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletLogout</servlet-name>
<url-pattern>/ServletLogout</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletVenda</servlet-name>
<url-pattern>/ServletVenda</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletUsuario</servlet-name>
<url-pattern>/ServletUsuario</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletManutenirFuncionario</servlet-name>
<url-pattern>/ServletManutenirFuncionario</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletManutenirFuncionarioForm</servlet-name>
<url-pattern>/ServletManutenirFuncionarioForm</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
/pages/index.jsp
</welcome-file>
</welcome-file-list>
</web-app>
estou tentando achar o erro mas ta dificil.
obrigado pela a ajuda
utilizei o submit no form e ficou assim:
[code]
<input type="submit" src="/imagens/bt_pesquisar_lupa.gif" name="pesquisar">
[/code]
o erro continua
</form>
galera consegui
olha que doideira nao entendi pq esta assim
dentro desse cara
http://localhost:8084/Zeron/pages/funcionario.jsp
tenho a minha action
que to chamando assim
http://localhost:8084/Zeron/pages/ServletManutenirFuncionario.do?metodo=pesquisarPorNome
so que era pra chamar assim
http://localhost:8084/Zeron/ServletManutenirFuncionario.do?metodo=pesquisarPorNome
sem o "pages"
sendo que o cara que tem a action (funcionario.jsp) esta dentro de pages
vcs sabem como que posso fazer para ficar certo?
obrigado
cara… pq vc mapeou tuas action struts como servlet’s no web.xml?
tire isto daí o mais rápido possível…rs
mapeamento de action somente do struts-config.xml
sim…
o struts que irá direcionar as requisições para as devidas classes (Actions).
No web.xml você mapeia somente a servlet do struts.
O struts é tão porquinho que até funciona umas coisas dessas, rs…
UAhiuHAuiHAIU
Q louco isso…
Nunca vi isso, me desculpe ficou engracado…
Imaginei que o Struts jamais acetaria isso, se me alguem me falasse isso!
iuahAiuHIUAhIA