Eu ja procurei muito aqui no forum, e outros lugares como o google mas nao consegui entender alguns detalhes em relação ao struts,
- Eu quero fazer um select e colocar os resultados em uma tabela para o jsp, eu preciso criar um ActionForm? porque : e como faz . E como utilizar o poll para isto? e como fazer com um DynaForm.
Do jeito que eu fiz aqui esta assim:
UserForm
import java.util.*;
import org.apache.struts.action.*;
public class UserForm extends ActionForm {
private final Map value = new HashMap();
public void setValue(String key, Object values) {
value.put(key, values);
}
public Object getValue(String key) {
return value.get(key);
}
}
select
import javax.servlet.http.*;
import org.apache.struts.action.*;
public final class select extends Action {
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
Connection c = null;
PreparedStatement ps = null;
ResultSet rs = null;
String databaseURL = "jdbc:postgresql://serverbd:5432/user";
String user = "user";
String password = "ncjasincjisnuicshurh29r3928u482r432rfs";
String driverName = "org.postgresql.Driver";
String query = "select * from testar";
String field = "campo";
try {
Class.forName (driverName);
c = DriverManager.getConnection (databaseURL, user, password);
ps = c.prepareStatement(query);
rs = ps.executeQuery ();
///DynaActionForm daf = (DynaActionForm)form; // usar quando mostrar o formulario
int i=1;
while (rs.next ()) {
System.err.println (rs.getString (field));
request.setAttribute(field+"-"+i, rs.getString (field));
///daf.set(field+"-"+i, rs.getString (field)); // quando for formulario usar
i++;
}
rs.close();
} catch(Exception ex) { System.err.print(ex.toString()); }
return (mapping.findForward("success"));
}
}
struts-config.xml
<form-bean name="UserForm"
type="org.apache.struts.action.DynaActionForm">
<form-property
name="campo-1"
type="java.lang.String"
initial="nome"/>
<form-property
name="campo-2"
type="java.lang.String"
initial="outro campo"/>
</form-bean>
.
.
.
<action path="/select"
type="select"
input="/select.jsp"
name="UserForm"
scope="request">
<forward name="success" path="/select.jsp"/>
<forward name="failure" path="/select.jsp"/>
</action>
select.jsp
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head><title>Select</title></head>
<body>
<h3>Select</h3>
<html:errors/>
<logic:present name="campo-1">
<bean:write name="campo-1"/>
</logic:present>
<br/>
<logic:present name="campo-2">
<bean:write name="campo-2"/>
</logic:present>
</body>
</html>
Bom um grande problema desse meu codigo utilizando o Dyna eh que eu nao utilizo a classe ActionForm para nada, e o pior eu tenho o nome dos campo staticos, determinados dentro da action, dentro do struts-config e dentro do jsp, eh muita coisa para atualizar… bom se tiverem algumas sugestoes eu agradeço muito, e eu olhei sobre poll e percebi que sera muito importante utilizar o que voces recomendam?
Obrigado desde ja
./Lucas;