1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Formulário html é enviado vazio quando chama submit() via javascript.

Framework usado: Struts 1.3.5

Criei uma página jsp com o seguinte botão:

<html:form action = "/minhaAction" >

<input type="button" value="Enviar" onclick="javascript:btnBuscar();" />
<html:select property="empresaId">
   <html:option value=""></html:option>
   <html:options collecion="minhaColecaoEmpresas" property="id" labelProperty="nome" />
</html:select>

</html:form>

A partir desse botão que está envolvido num formulário html (entre as tags forms), criei o javascript "btnBuscar()", com código abaixo:

function btnSearch() {
    document.forms[0].action='<%=request.getContextPath()%>/minhaAction.do?actionType=search';
    document.forms[0].submit();
}

Esse javascript funciona e quando chega no servidor no método "search" do Struts Action "MinhaAction.java" (POJO para configurar uma action no struts), os campos que crei nas páginas como por exemplo empresa, nome, descrição e outros pertinentes ao negócio, vão todos NULOS! Sendo que esses campos são preenchidos no JSP e na execução do javascript (ao clicar o botão para enviar o formulário), a variável como document.forms[0].empresaId (ligada com empresaId que está no primeiro código dessa pergunta) e outras variáveis estão com valores que eu (usuário) selecionou.

Como posso contornar esse erro ? No struts vou precisar criar mais variáveis ?

Configurações usadas:

Arquivo struts-config.xml

<action 
path = "/minhaAction"
type = "MinhaAction"
name = "minhaForm"
scope = "request"
input = "minhaSearch"
validate = "false"
parameter = "actionType" >
<forward name = "search"
path = "minhaSearch" />
</action>
  • Como você está recuperando os valores da tela? Está usando dynaForm ou você tem um form do struts específico para a ação?

    lucastody   30 de dez de 2013
  • Olá, não uso dynaForm, uso form do struts e alterei a pergunta para mostrar essas configurações. A princípio criei um pojo para representar a action do struts como "MinhaAction" e o form como "MinhaForm" também um pojo para representar o formulário.

    josepojr   31 de dez de 2013
  • Vc chama btnBuscar(), mas criou btnSearch()... é isso mesmo?

    Cruz   02 de jan de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags struts javascript jsp ou faça a sua própria pergunta.