Formulário

6 respostas
luciane
Galera, eu tenho o seguinte formulário:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<!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=UTF-8">
        <title>JSP</title>
    </head>
    <body>

    <h1>Sturts</h1>
    <form action="exemplo">
        Nome: <input type="text" name="nomeForm" value="" size="40"><br>
        Idade: <input type="text" name="idadeForm" value=""><br>
        <select name="comando">
            <option value="cadastrar">Cadastrar</option>
            <option value="excluir">Excluir</option>
            <option value="alterar">Alterar</option>
            <option value="consultar">Consultar</option>
        </select><br>
        <input type="submit" value="enviar"> 
    </form>

    </body>
</html>
Sendo que qd eu clico em enviar, ele dá erro. Eu acho que o action esta errado, mas eu não sei como fazer ele chamar o struts-config.xml pra pegar as configurações q eu fiz.... o meu struts-config.xml tah assim:
<?xml version="1.0" encoding="UTF-8" ?>

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


<struts-config>
    <data-sources>
         <data-source type="org.apache.commons.dbcp.BasicDataSource">
             <set-property property="driverClassName" value="org.postgresql.Driver"/>
             <set-property property="url" value="jdbc:postgresql:teste"/>
             <set-property property="username" value="postgres"/>
             <set-property property="password" value="@post171"/>
         </data-source>
    </data-sources>
    <form-beans>
        <form-bean name="[b]exemplo[/b]" type="FuncionarioForm" />
    </form-beans>
    
    <global-exceptions>
    
    </global-exceptions>

    <global-forwards>
        <forward name="welcome"  path="/Welcome.do"/>
    </global-forwards>

    <action-mappings>
        <action path="[b]/exemplo[/b]" type="FuncionarioAction" name="FuncionarioForm">
            <forward name="cadastrar" path="/cadastrar.jsp"/>
            <forward name="excluir" path="/excluir.jsp"/>
            <forward name="alterar" path="/alterar.jsp"/>
            <forward name="consultar" path="/consultar.jsp"/>
            <forward name="falha" path="/falha.jsp"/>
        </action>
    </action-mappings>
    
    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

    <message-resources parameter="com/myapp/struts/ApplicationResource"/>    
    
    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />      
        <set-property property="moduleAware" value="true" />
    </plug-in>
    
    <!-- ========================= Validator plugin ================================= -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
            property="pathnames"
            value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>
  
</struts-config>

6 Respostas

kissdemon

Luciane,

seu action do formulario está apontando apenas para “exemplo”, e não para “exemplo.do” certo?
Como voce está usando tags simples HTML, nesse caso na tag form precisa colocar o “.do”. Caso estivesse utilizando a tag form do Struts, bastava colocar o nome do mapeamento, e o “.do” viria automaticamente

[]'s

luciane

Desculpe, mas eu sou nova neste negócio de Struts… :roll: então eu só preciso alterar o meu formulário mesmo… o meu arquivo de configuração do Struts está certo… que bom! É só colocar exemplo.do no action do form… blz :smiley:

Muuito Obrigada pelo esclarecimento. Eu vou testar agora.

luciane
kissdemon:
Luciane,

seu action do formulario está apontando apenas para "exemplo", e não para "exemplo.do" certo?
Como voce está usando tags simples HTML, nesse caso na tag form precisa colocar o ".do". Caso estivesse utilizando a tag form do Struts, bastava colocar o nome do mapeamento, e o ".do" viria automaticamente

[]'s

Ae, eu tentei o q vc falou mas deu este erro aki:
HTTP Status 404 - Servlet action is not available

--------------------------------------------------------------------------------

type Status report

message Servlet action is not available

description The requested resource (Servlet action is not available) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.17
mcruz

Talvez seja o mapeamento do ActionServlet do struts no web.xml que esteja errado…

kissdemon

Realmente…veja se seu web.xml está + ou - assim:

<web-app>

	<servlet>
		<servlet-name>Struts</servlet-name>
		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Struts</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
</web-app>
luciane

Agora o mapeamento tah legal... agora, o q eu não tô conseguindo mesmo é meio q "relacionar" o meu form com o restante do código... ele dá este erro aki:

HTTP Status 404 - /AprendendoStruts/exemplo

--------------------------------------------------------------------------------

type Status report

message /AprendendoStruts/exemplo

description The requested resource (/AprendendoStruts/exemplo) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.17

Eu acho q deve ser alguma configuração no struts-config...

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