2017-05-02 3 views
2

J'ai un menu déroulant qui extrait les données d'une table SQL. Tout fonctionne bien et je suis en mesure de sélectionner la valeur et soumettre le formulaire. Cependant, mon scriptlet donne une exception NULL lorsque je convertis la valeur de String. Qu'est-ce que je fais mal?request.getParameter get java.lang.NumberFormatException: null

testCars.jsp

<form method=post action=“testCars.jsp"> 
<div class="cell"> 
     Select CarID 
     <div class="input-control select mutiple full-size"> 
      <select id=“carID” name=“carID” onchange="listCarIDFromDatabase();”> 
      <option selected disabled>--SELECT--</option> 
      <% 
      ArrayList<Integer> result = carDAO.getCarID(Integer.parseInt(id)); 
      for (int r: result){ 
       out.println("<option value='" + r + "'>" + r + "</option>"); 
        request.setAttribute("r", r); 
      } 
      %> 
      </select> 

     </div> 
    </div> 

Le returncarID d'entrée est peuplée en fonction du succès AJAX onchange = "listCarIDFromDatabase();

<button class="button primary" type="submit">Generate</button></form> 
    <input name=“returncarID” id=“returncarID”> 


<% 
//Scriptlet gets the value of the dropdown in next line, but when I convert to Int it is NULL 
String y = request.getParameter(“returncarID”); 
out.println(y); <——Prints out value here 

int x = Integer.parseInt(y); 
out.println(x); <———Null Exception here 


%> 
+0

est la valeur de y un numéro ou toute autre chaîne? – Jeet

+0

* Imprime la valeur ici *, quelle est cette sortie? –

+0

La valeur estampes: 900056 – raptor496

Répondre

1

Si la sortie est 900056 et que vous obtenez un java.lang.NumberFormatException lorsque vous écrire:

int x = Integer.parseInt(y); 
out.println(x); 

Je pense que le problème est le intial String il peut avoir une fuite ou menant des espaces, pour éviter ce problème, utilisez .trim() avec votre String avant l'analyser:

int x = Integer.parseInt(y.trim()); 
out.println(x);