2 formularze do str JSP (null pointer)

0

Witam

Mam następujący problem.
Mam tabelę w której się wprowadza dane (id_tabeli) i potem wysyła to wszystko do jednej stronki jsp.
Problem pojawia się gdy chcę te dane przetworzyć, można wysłać tyko 1 pole, drugie lub inne zawsze pozostają puste.
Jak można ominąć na stronie która odbiera te dane błąd java. null pointer exception :(
Albo jak sprawdzić czy parametr jest null a jeżeli jest to żeby metoda

try{

}
catch (Exception e)
{e.printStackTrace}

Nie wywalała błędu.

oto kody programu:

(mod_tab.jsp)

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<!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>Modyfikacja tabel</title>
    </head>
    <body>
     <table border="1">
         <thead>
             <tr>
                 <th><i>Nazwa tabeli</i></th>
                 <th><i>Numer ID</i></th>
                 <th><i>Wyślij zapytanie</i></th>
             </tr>
         </thead>
         <tbody>
             <tr>
                 <form action="edycja.jsp" method="POST">
                 <td><b><a href="klienci.jsp">Klienci</a></b></td>
                 <td><input type="text" name="id_kl"/></td>
                 <td><input type="submit" value="Wyślij"/><input type="reset" value="Wyczyść dane" /></td>

                 </form>
             </tr>

             <tr>
            <form action="edycja.jsp" method="POST">
           <td><b><a href="pakiety.jsp">Pakiety</a></b></td>
           <td><input type="text" name="id_pak"  /></td>
           <td><input type="submit" value="Wyślij" /><input type="reset" value="Wyczyść dane" /></td>
            </form>

                 <tr>
                 <form action="edycja.jsp" method="POST">
                 <td><b><a href="platnosci.jsp">Płatości</a></b></td>
                 <td><input type="text" name="id_plat"/></td>
                 <td><input type="submit" value="Wyślij" /><input type="reset" value="Wyczyść dane" /></td>
                 </form>
                </tr>

             <tr>
             <form action="edycja.jsp" method="POST">
             <td><b><a href="pracownicy.jsp">Pracownicy obsługi</a></b></td>
             <td><input type="text" name="idprac"/></td>
             <td><input type="submit" value="Wyślij" /><input type="reset" value="Wyczyść dane" /></td>
             </form>
             </tr>


             <tr>
             <form action="edycja.jsp" method="POST">
             <td><b><a href="zamowienia.jsp">Zamówienia</a></b></td>
             <td><input type="text" name="idzam" /></td>
             <td><input type="submit" value="Wyślij" /><input type="reset" value="Wyczyść dane" /></td>
             </form>
             </tr>
         </tbody>
     </table>



    </body>
</html>

Plik edycja.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import ="java.sql.*"%>
<link rel="stylesheet" type="text/css" href="../arkusz_styli.css"/>
<%--htmlowo - nie ucina!! --%>
<html>
    <head>
         <jsp:useBean id="aklient" scope="request" class="manager.eklient" />
        <jsp:setProperty name="aklient" property="id_kl"/>

       <jsp:useBean id="apakiety" scope="request" class="manager.epakiety" />
        <jsp:setProperty name="apakiety" property="id_pak"/>

           <%--   <jsp:useBean id="aplatnosci" scope="request" class="manager.eplatnosci" />
        <jsp:setProperty name="aplatnosci" property="id_plat"/>

        <jsp:useBean id="apracownik" scope="request" class="manager.epracownik" />
        <jsp:setProperty name="apracownik" property="idprac"/>

        <jsp:useBean id="azamowienia" scope="request" class="manager.ezamowienia" />
        <jsp:setProperty name="azamowienia" property="idzam"/>--%>

       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>JSP Page</title>




</head>
<%! String a,b,c,d,e;
boolean f,g;
int aa, bb, cc, dd, ee;

%>

<%
g = request.getParameter("id_pak").isEmpty();
try{
bb=Integer.parseInt(request.getParameter("id_kl"));
//aa=request.getParameter("id_pak").hashCode();
//out.println("Hasz kod"+aa);


//f=request.getParameter("id_pak").isEmpty();



 if (g==true)

     {
     out.println("Pusty ciąg");
     }
else{

    out.println("Nie pusty ciąg");
    }

}
catch (Exception e)
        {
    out.println("WYstąpił błąd bazy");
    e.printStackTrace();

    }

%>




<div id="zawartosc">
<BODY BGCOLOR=silver>
    
 <%--pakiet  <jsp:getProperty name="apakiety" property="id_pak" /><BR>
    platnosc  <jsp:getProperty name="aplatnosci" property="id_plat" /><BR>
    pracownik  <jsp:getProperty name="apracownik" property="idprac" /><BR>
    zamowienie  <jsp:getProperty name="azamowienia" property="idzam" /><BR>--%>
 

</div>
</body>
</html>

ziarna do tabel
apakiety

package manager;

public class epakiety {
String id_pak;

    public String getId_pak() {
        return id_pak;
    }

    public void setId_pak(String id_pak) {
        this.id_pak = id_pak;
    }
}

aklienci

package manager;

/**
 *
 * @author Krzysztof
 */
public class eklient {
String id_kl;

    public String getId_kl() {
        return id_kl;
    }

    public void setId_kl(String id_kl) {
        this.id_kl = id_kl;
    }
}

Niech ktoś mi powie czy dobrze robię, że do każdej tabeli mam osobny plik bean który zwraca mi jej id?
Dodam, tylko że to projekt robiony "na piechotę" niezbyt profesjonalnie bez wykorzystywania JSTL, czy innych frameworków.

Chodzi mi o to, że nie chcę tworzyć w nieskończoność stron JSP do edycji każdej tabeli, chcę to rozwiązać w ten sposób, tabela edycyjna wprowadza sie ID (np tabeli klienci, płatności, pakiety)
dane są wysyłane do 1 stronki jsp. (edycja) i tam pobiera mi parametry z formularza i jeżeli jest null to odrzuca, a potem wykonuje mi odpowiednie polecenie ResultSet pod warunkiem, że wprowadzone ID>0

Tutaj zamieszczam link do projektu w Netbeansie. Próbowałem metodą
boolean a;
a=request.getParameter("id_kl").isEmpty();

if (a==true){}

problem jest jak mam ustawione kolejne parametry do sprawdzenia (typu id tabeli pakiety czy innej) zawsze wyrzuci mi błąd null.

Link do projektu z NB http://www.sendspace.com/file/p9jb1f

jeszcze takie jedno pytanko bo nie chcę nabijać postów

Jak można w inny sposób ominąć wyrzucenie błędu w bloku try - catch

gdy mam coś takiego

try{
int a, b;

a=Integer.parseInt(request.getParameter("ID_tabeli1"));
b=Integer.parseInt(request.getParameter("Id_tabeli2"));

}
catch (Exception e)
{e........}

Gdy bankowo zawsze jeden lub więcej z nich jest null (wysyłam w sumie 5 parametrów, a zawsze tylko 1 z nich jest nie pusty)

POMOCY

0

Ja bym to zrobil znacznie prosciej:

SelectorBean.java

package my.sample.web;

public class SelectorBean {
	private Long id;
	private String type;

	//getters & setters
}

formularz.html

<!-- ... -->
<tr>
	<form action="edycja.jsp" method="POST">
	<input type="hidden" name="type" value="klienci"/>
	<td><b><a href="klienci.jsp">Klienci</a></b></td>
	<td><input type="text" name="id"/></td>
	<td><input type="submit" value="Wyślij"/><input type="reset" value="Wyczyść dane" /></td>
	</form>
</tr>
<!-- ... -->

edycja.jsp

<!-- ... -->
<jsp:useBean id="selector" class="my.sample.web.SelectorBean" scope="request"/>
<jsp:setProperty property="*" name="selector"/>
<!-- ... -->
${selector.id} - ${selector.type}
<!-- ... -->

W pliku edycja.jsp wystarczy, ze sprawdzisz, czy id jest ustawione. Jesli tak, wykonasz akcje zalezna od przekazanego typu.

PS:
#1. sprobuj usystematyzowac nazewnictwo (klas/zmiennych/itd.) w swoim kodzie.
#2. Twoj formularz nie przejdzie walidacji W3C (nieprawidlowo umieszczone tagi <form></form>)

1 użytkowników online, w tym zalogowanych: 0, gości: 1