Hi !

I am learning to work with struts, after i click on submit button (in a
form) i get a blank page. This thing is annoying me because i can't find the
solution for a week !

The page has 2 hmtl list option. The first list loads info about a company
compartiments, and after hitting "Refresh Employees", the second list should
shouw data about all the employees from the selected department.

What is happening ? After hitting "Refresh Employees" i get a blank
selectAngajat.do page. If i go Back and Refresh(F5) the second list option
shows all the employees from that department.

Does anyone have any idea about this ? I posted some code down:

PersonalBody.jsp
[code]
<%@ page import="databeans.*"%>
<%@ page import="java.sql.Connection"%>
<jsp:useBean id="ss_PersSelected" class="databeans.CompartPersSelectedBean"
scope="session"/>
<html:form action="/selectAngajat.do">
<table width="600" border="1">
<tr>
<td width="174">Selectati un Compartiment:</td>
<td width="213">
<html:select property="compartid">
<%
Connection conn=Utilitati.getConexiune();
java.util.ArrayList listaCompartimente=
   ObiectPersistent.getObjects(Compartimente.class,conn,null);
conn.close();
for(int i=0;i<listaCompartimente.size();i++) {
%>
<html:option
value="<%=((Compartimente)listaCompartimente.get(i)).getCompartid()%>">
<%=((Compartimente)listaCompartimente.get(i)).getNumecompart()%>
</html:option>
<%}%> <%-- s-a inchis for-ul--%>
</html:select>

</td>
<td width="191">
<input type="submit" name="Submit" value="Refresh Employees">
</td>
</tr>
<tr>
<td width="174">Selectati Angajatul:</td>
<td width="213">
<html:select property="marcaselectata">
<% Connection conn=Utilitati.getConexiune();
if (ss_PersSelected.getCompartid() != null) //exista un compartiment
selectat
{ java.util.ArrayList listaAngajati =
   ObiectPersistent.getObjects(Personal.class,conn,
" where compartid='"+ss_PersSelected.getCompartid()+"' ");
conn.close();
for(int i=0;i<listaAngajati.size();i++){%>
<html:option
value="<%=((Personal)listaAngajati.get(i)).getMarca().toString()%>">
<%=((Personal)listaAngajati.get(i)).getNumepren()%>
</html:option>
<%}}%> <%-- inchidem FOR si IF --%>
</html:select>
</td>
<td width=" 191 ">
<input type="submit" name="Submit2" value="Show Employee">
</td>
</tr>
</table>

</html:form>

<%if (request.getSession().getAttribute("ss_DatePers") != null){%>
<tiles:insert page="/tiles/bodys/DateAngajatBody.jsp"/> <%}
   else if (ss_PersSelected.getCompartid() != null){%>
   <html:form action="/dateAngajat.do">
<html:hidden property="actiune" value="newObject"/>
<html:submit property="add" value="Angajat Nou" />
</html:form>
<%}%>
[/code]

struts-config.xml
[code]
<struts-config>

<form-beans>
   <form-bean name="loginBean" type="databeans.LoginExistingUserForm"/>
       <form-bean name="ss_PersSelected" type="
databeans.CompartPersSelectedBean"/>
<form-bean name="ss_DatePers" type="databeans.Personal"/>
</form-beans>

<action-mappings>
<action path="/selectAngajat" type="formactions.SelectAngajatAction"
name="ss_PersSelected" input="/tiles/bodys/PersonalBody.jsp"
scope="session">
<forward name="succes" path="/pages/DatePersonal.jsp" redirect="true"/>
</action>
</action-mappings>
</struts-config>
[/code]

SelectAngajatAction.class
[code]
package formactions;

import databeans.CompartPersSelectedBean;

import databeans.ObiectPersistent;
import databeans.Personal;
import databeans.Utilitati;

import java.io.IOException;

import javax.servlet.ServletException;
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;

public class SelectAngajatAction extends Action {

   public ActionForward perform(ActionMapping mapping, ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response) throws
IOException,

ServletException {
       CompartPersSelectedBean formBean = (CompartPersSelectedBean)form;
       java.sql.Connection conn = null;

       if (formBean.getMarcaselectata() != null &&
           formBean.getMarcaselectata().intValue() != -1)
           try { // incarc in sesiune obiectul Personal corespunzator
marcii selectate de utilizator
               conn = Utilitati.getConexiune();
               Personal objPersCurent =
                   (Personal)ObiectPersistent.getObjects(Personal.class,
conn,
                                                         "where marca=" +

formBean.getMarcaselectata().toString()).get(0);
               // ATENTIE! Identificatorul atributului trebuie sl fie cel
definit in Struts-Contig.xml
               request.getSession().setAttribute("ss_DatePers",
                                                 objPersCurent);


               conn.close();

           } catch (Exception e) {
               e.printStackTrace();
               if (conn != null)
                   try {
                       conn.close();
                   } catch (Exception err) {
                   err.printStackTrace();
                   }
               return mapping.findForward("eroareBD");
           }
       else // daca marca e null elimin eventualul atribut ss_DatePers
anterior
           request.getSession().removeAttribute("ss_DatePers");

       return mapping.findForward("success");
   }
}
[/code]

Reply via email to