Bom a dia a todos.
Estou começando agora com j2EE e logo de cara me deram uma tarefa e eu me enrosquei em um ponto.
Preciso criar uma pagina para fazer o cadastro das ordens de produção aqui da empresa e acontece o seguinte:
A pagina principal deste modulo deverá conter alguns select/combos como fabrica, maquina, produtos entre outros.
O Problema é que de imediato em uma pagina mais simples onde se cadastra as maquinas que seram utilizadas eu não consigo colocar dois campos do tipo texto (input type=“text”) junto com um select.
Estou utilizando Struts e de forma nenhuma a coisa funciona, o select ele sempre volta vazio.
O curioso é que se eu chamo este select sozinho em uma outra pagina ele mostra as informações da tabela.
O meu codigo esta aqui:
AdicionaMaquinaAction.java
package br.com.black.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import br.com.black.jdbc.dao.ProducaoDAO;
import br.com.black.jdbc.modelo.Maquina;
import br.com.black.struts.form.MaquinaForm;
public class AdicionaMaquinaAction extends Action{
@Override
public ActionForward execute(ActionMapping map, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception {
System.out.println("Tentando incluir uma maquina...");
Maquina maquina = ((MaquinaForm) form).getMaquina();
new ProducaoDAO().adicionaMaquina(maquina);
// TODO Auto-generated method stub
return map.findForward("ok");
}
}
MaquinaForm.java
package br.com.black.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import br.com.black.jdbc.modelo.Maquina;
public class MaquinaForm extends ActionForm{
/**
*
*/
private static final long serialVersionUID = 1L;
private Maquina maquina = new Maquina();
public Maquina getMaquina() {
return maquina;
}
public void setMaquina(Maquina maquina) {
this.maquina = maquina;
}
public boolean stringVazia (String s) {
return s == null || s.trim().length() ==0;
}
@Override
public ActionErrors validate(ActionMapping map, HttpServletRequest request) {
// TODO Auto-generated method stub
ActionErrors errors = new ActionErrors();
if (stringVazia(maquina.getCd_maquina()))
errors.add("cd_maquina",new ActionMessage("cd_maquinavazia"));
if (stringVazia(maquina.getCd_fabrica()))
errors.add("cd_fabrica",new ActionMessage("cd_fabricavazia"));
if (stringVazia(maquina.getNm_maquina()))
errors.add("nm_maquina",new ActionMessage("nm_maquinavazia"));
return errors;
}
public void limpaForm (ActionMapping map, HttpServletRequest req) {
maquina.setCd_maquina(null);
maquina.setCd_fabrica(null);
maquina.setNm_maquina(null);
}
}
ProducaoDAO
package br.com.black.jdbc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.black.jdbc.ConnectionFactory;
import br.com.black.jdbc.modelo.Fabrica;
import br.com.black.jdbc.modelo.Funcionario;
import br.com.black.jdbc.modelo.Maquina;
import br.com.black.jdbc.modelo.OrdemDeProducao;
public class ProducaoDAO {
private Connection connection;
public ProducaoDAO(Connection con){
this.connection = con;
}
public ProducaoDAO() throws SQLException{
this.connection = ConnectionFactory.getConnection();
}
public void adicionaFabrica(Fabrica fabrica) throws SQLException {
// prepared statement para insercao
PreparedStatement stmt = this.connection
.prepareStatement("insert into fabrica (cd_fabrica,nm_fabrica) values (?, ?)");
// seta os valores
stmt.setString(1, fabrica.getCd_fabrica());
stmt.setString(2, fabrica.getNm_fabrica());
// executa
stmt.execute();
stmt.close();
}
public void alteraFabrica(Fabrica fabrica) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("update fabrica set cd_fabrica=?" +
"set nm_fabrica=?" +
"where cd_fabrica=?");
stmt.setString(1, fabrica.getCd_fabrica());
stmt.setString(2, fabrica.getNm_fabrica());
stmt.execute();
stmt.close();
}
public void removeFabrica (Fabrica fabrica) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("delete from fabrica where cd_fabrica=?");
stmt.setString(1, fabrica.getCd_fabrica());
stmt.execute();
stmt.close();
}
public List<Fabrica> getListaFabrica() throws SQLException {
PreparedStatement stmt =
this.connection.prepareStatement("Select * from fabrica");
ResultSet rs =stmt.executeQuery();
List<Fabrica> listFabrica = new ArrayList<Fabrica>();
while (rs.next()) {
Fabrica fabrica = new Fabrica();
fabrica.setCd_fabrica(rs.getString("cd_fabrica"));
fabrica.setNm_fabrica(rs.getString("nm_fabrica"));
listFabrica.add(fabrica);
}
rs.close();
stmt.close();
return listFabrica;
}
public void adicionaMaquina(Maquina maquina) throws SQLException {
// prepared statement para insercao
PreparedStatement stmt = this.connection
.prepareStatement("insert into maquina (cd_maquina, cd_fabrica, nm_maquina) values (?, ?, ?)");
// seta os valores
stmt.setString(1, maquina.getCd_maquina());
stmt.setString(2, maquina.getCd_fabrica());
stmt.setString(3, maquina.getNm_maquina());
// executa
stmt.execute();
stmt.close();
}
public void alteraMaquina(Maquina maquina) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("update maquina set cd_maquina=?" +
"cd_fabrica=?" +
"nm_maquina=?");
stmt.setString(1, maquina.getCd_maquina());
stmt.setString(2, maquina.getCd_fabrica());
stmt.setString(3, maquina.getNm_maquina());
stmt.execute();
stmt.close();
}
public void removeMaquina(Maquina maquina) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("delete from maquina where cd_maquina=?");
stmt.setString(1, maquina.getCd_fabrica());
stmt.execute();
stmt.close();
}
public List<Maquina> getListaMaquina() throws SQLException {
PreparedStatement stmt =
this.connection.prepareStatement("Select * from maquina");
ResultSet rs =stmt.executeQuery();
List<Maquina> listMaquina = new ArrayList<Maquina>();
while (rs.next()) {
Maquina maquina = new Maquina();
maquina.setCd_maquina(rs.getString("cd_maquina"));
maquina.setCd_fabrica(rs.getString("cd_fabrica"));
maquina.setNm_maquina(rs.getString("nm_maquina"));
listMaquina.add(maquina);
}
rs.close();
stmt.close();
return listMaquina;
}
public void adicionaOrdemDeProducao(OrdemDeProducao op) throws SQLException {
// prepared statement para insercao
PreparedStatement stmt = this.connection
.prepareStatement("insert into ordemproducao (cd_produto, cd_fabrica, cd_maquina, cd_funcionario, dt_cadastro, " +
"ie_confirmada, dt_confirmada, ie_cancelada, dt_cancelada, ds_cancelada, " +
"ie_fechada, ds_observacao) " +
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
// seta os valores
stmt.setString(1, op.getCD_PROUTO());
stmt.setString(2, op.getCD_FABRICA());
stmt.setString(3, op.getCD_MAQUINA());
stmt.setString(4, op.getCD_FUNCIONARIO());
stmt.setString(5, op.getDT_CADASTRTO());
stmt.setString(6, op.getIE_CONFIRMADA());
stmt.setString(7, op.getDT_CONFIRMADA());
stmt.setString(8, op.getIE_CANCELADA());
stmt.setString(9, op.getDT_CANCELADA());
stmt.setString(10, op.getDS_CANCELADA());
stmt.setString(11, op.getIE_FECHADA());
stmt.setString(12, op.getDS_OBSERVACAO());
// executa
stmt.execute();
stmt.close();
}
public void alteraOrdemDeProducao(OrdemDeProducao op) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("update ordemproducao set cd_produto=? ," +
" cd_fabrica=? ," +
" cd_maquina=? ," +
" cd_funcionario=? ," +
" dt_cadastro=? ," +
" ie_confirmada=? ," +
" dt_confirmada=? ," +
" ie_cancelada=? ," +
" dt_cancelada=? ," +
" ds_cancelada=? , " +
" ie_fechada=? ," +
" ds_observacao=?");
stmt.setString(1, op.getCD_PROUTO());
stmt.setString(2, op.getCD_FABRICA());
stmt.setString(3, op.getCD_MAQUINA());
stmt.setString(4, op.getCD_FUNCIONARIO());
stmt.setString(5, op.getDT_CADASTRTO());
stmt.setString(6, op.getIE_CONFIRMADA());
stmt.setString(7, op.getDT_CONFIRMADA());
stmt.setString(8, op.getIE_CANCELADA());
stmt.setString(9, op.getDT_CANCELADA());
stmt.setString(10, op.getDS_CANCELADA());
stmt.setString(11, op.getIE_FECHADA());
stmt.setString(12, op.getDS_OBSERVACAO());
stmt.execute();
stmt.close();
}
public void removeOrdemDeProducao(OrdemDeProducao op) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("delete from ordemproducao where cd_maquina=?");
stmt.setLong(1, op.getCD_ORDEMPRODUCAO());
stmt.execute();
stmt.close();
}
public List<OrdemDeProducao> getListaOrdemDeProducao() throws SQLException {
PreparedStatement stmt =
this.connection.prepareStatement("Select * from ordemproducao");
ResultSet rs =stmt.executeQuery();
List<OrdemDeProducao> listOrdemDeProducao = new ArrayList<OrdemDeProducao>();
while (rs.next()) {
OrdemDeProducao op = new OrdemDeProducao();
op.setCD_ORDEMPRODUCAO(rs.getLong("cd_ordemdeproducao"));
op.setCD_PROUTO(rs.getString("cd_produto"));
op.setCD_FABRICA(rs.getString("cd_fabrica"));
op.setCD_MAQUINA(rs.getString("cd_maquina"));
op.setCD_FUNCIONARIO(rs.getString("cd_funcionario"));
op.setDT_CADASTRTO(rs.getString("dt_cadastro"));
op.setIE_CONFIRMADA(rs.getString("ie_confirmada"));
op.setDT_CONFIRMADA(rs.getString("dt_confirmada"));
op.setIE_CANCELADA(rs.getString("ie_cancelada"));
op.setDT_CANCELADA(rs.getString("dt_cancelada"));
op.setDS_CANCELADA(rs.getString("ds_cancelada"));
op.setNR_QUANTIDADE(rs.getLong("nr_quantidade"));
op.setDS_OBSERVACAO(rs.getString("ds_observacao"));
listOrdemDeProducao.add(op);
}
rs.close();
stmt.close();
return listOrdemDeProducao;
}
public void adicionaFuncionario(Funcionario funcionario) throws SQLException {
// prepared statement para insercao
PreparedStatement stmt = this.connection
.prepareStatement("insert into funcionario (cd_funcionario, cd_fabrica, nm_completo, nm_usual) values (?, ?, ?, ?)");
// seta os valores
stmt.setString(1, funcionario.getCd_funcionario());
stmt.setString(2, funcionario.getCd_fabrica());
stmt.setString(3, funcionario.getNm_completo());
stmt.setString(4, funcionario.getNm_usual());
// executa
stmt.execute();
stmt.close();
}
public void alteraFuncionario(Funcionario funcionario) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("update funcionario set cd_funcionario=?" +
"cd_fabrica=?" +
"nm_completo=?" +
"nm_usual");
stmt.setString(1, funcionario.getCd_funcionario());
stmt.setString(2, funcionario.getCd_fabrica());
stmt.setString(3, funcionario.getNm_completo());
stmt.setString(4, funcionario.getNm_usual());
stmt.execute();
stmt.close();
}
public void removeFuncionario(Funcionario funcionario) throws SQLException {
PreparedStatement stmt = this.connection
.prepareStatement("delete from funcionario where cd_funcionario=?");
stmt.setString(1, funcionario.getCd_fabrica());
stmt.execute();
stmt.close();
}
public List<Funcionario> getListaFuncionario() throws SQLException {
PreparedStatement stmt =
this.connection.prepareStatement("Select * from funcionario");
ResultSet rs =stmt.executeQuery();
List<Funcionario> listFuncionario = new ArrayList<Funcionario>();
while (rs.next()) {
Funcionario funcionario = new Funcionario();
funcionario.setCd_funcionario(rs.getString("cd_funcionario"));
funcionario.setCd_fabrica(rs.getString("cd_fabrica"));
funcionario.setNm_completo(rs.getString("nm_completo"));
funcionario.setNm_usual(rs.getString("nm_usual"));
}
rs.close();
stmt.close();
return listFuncionario;
}
}
Maquina.java
package br.com.black.jdbc.modelo;
public class Maquina {
private String cd_maquina;
private String cd_fabrica;
private String nm_maquina;
public String getCd_fabrica() {
return cd_fabrica;
}
public void setCd_fabrica(String cd_fabrica) {
this.cd_fabrica = cd_fabrica;
}
public String getCd_maquina() {
return cd_maquina;
}
public void setCd_maquina(String cd_maquina) {
this.cd_maquina = cd_maquina;
}
public String getNm_maquina() {
return nm_maquina;
}
public void setNm_maquina(String nm_maquina) {
this.nm_maquina = nm_maquina;
}
}
e por fim meu struts-config
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="ContatoForm" type="br.com.black.struts.form.ContatoForm"></form-bean>
<form-bean name="LoginForm" type="br.com.black.struts.form.LoginForm"></form-bean>
<form-bean name="FabricaForm" type="br.com.black.struts.form.FabricaForm"></form-bean>
<form-bean name="MaquinaForm" type="br.com.black.struts.form.MaquinaForm"></form-bean>
<form-bean name="FuncionarioForm" type="br.com.black.struts.form.FuncionarioForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/teste" type="br.com.black.struts.action.TesteSimples">
<forward name="exemplo" path="/exemplo.jsp"/>
</action>
<action path="/listacontatos" type="br.com.black.struts.action.ListaContatosAction">
<forward name="lista" path="/lista-elegante.jsp"></forward>
</action>
<action path="/listafabrica" type="br.com.black.struts.action.ListaFabricasAction">
<forward name="lista" path="/listaFabrica.jsp"></forward>
</action>
<action path="/listamaquina" type="br.com.black.struts.action.ListaMaquinasAction">
<forward name="lista" path="/listaMaquina.jsp"></forward>
</action>
<action path="/novoContato"
input="/novo.jsp"
name="ContatoForm"
type="br.com.black.struts.action.AdicionaContatoAction">
<forward name="Ok" path="/listacontatos.do"></forward>
</action>
<action path="/login"
name="LoginForm"
type="br.com.black.struts.action.Login">
<forward name="erro" path="/erro.jsp"/>
<forward name="ok" path="/ok.jsp"/>
</action>
<action path="/novaFabrica"
input="/novaFabrica.jsp"
name="FabricaForm"
type="br.com.black.struts.action.AdicionaFabricaAction">
<forward name="erro" path="/erro.jsp"/>
<forward name="okFabrica" path="/listafabrica.do"/>
</action>
<action path="/novaMaquina"
input="/novaMaquina.jsp"
name="MaquinaForm"
type="br.com.black.struts.action.AdicionaMaquinaAction">
<forward name="erro" path="/erro.jsp"/>
<forward name="okMaquina" path="/listamaquina.do"/>
</action>
<action path="/novoFuncionario"
input="/novoFuncionario.jsp"
name="FuncionarioForm"
type="br.com.black.struts.action.AdicionaFuncionarioAction">
<forward name="erro" path="/erro.jsp"/>
<forward name="okFuncionario" path="/listafuncionario.do"/>
</action>
<action path="/listaCategorias"
type="br.com.black.struts.action.ListaCategorias">
<forward name="lista" path="/listaCategoria.jsp"/>
</action>
</action-mappings>
<message-resources parameter="MessageResources"/>
</struts-config>
Gostaria muito de obter ajuda para resolver este problema.
Muito obrigado a todos.
