2013-12-14 2 views
1

У меня есть текст ввода, скажем, он используется для ввода цены. У меня есть код проверки на doinsertproducts.jsp после того как пользователь нажмите кнопку отправки на insertproducts.jspОшибка проверки текста ввода - JSP

проверки достоверности для ввода цены:

  1. вводимого текст должен быть заполнен.
  2. текст ввода должен быть числовым.
  3. цена должна быть больше нуля.

Вот первый код:

if(price.equals("")||price==null){ 
    response.sendRedirect("../insertproducts.jsp?insertproduct="+producttype+"&err=Price must be filled."); 
    return; 
} 
else{ 
     try{ 
      intprice=Integer.parseInt(price); 
     } 
     catch (Exception e) { 
      response.sendRedirect("../insertproducts.jsp?insertproduct="+producttype+"&err=Price must be numeric."); 
     } 
    } 

И я не имею представления о том, где же я должен поставить этот второй код, чтобы проверить, если на входе меньше, чем 1:

if(intprice<1){ 
      response.sendRedirect("../insertproducts.jsp?insertproduct="+producttype+"&err=Price must be greater than 0 (zero)."); 
    } 

В любом случае, когда я выполняю 1-й код и пытаюсь ввести символ во входной текст (без включения второго кода), возникает ошибка основной причины:

Cannot call sendRedirect() after the response has been committed 

Похоже, что код не был обработан ошибкой. Есть ли какое-то решение, чтобы код мог обнаружить 3 ошибки пользователя?

+2

Side Примечание: 'если (price.equals ("") || цены == NULL)' - 'цена == null' недостижим. Из-за 'price == null' вы получите NPE. Do 'if (" ". Equals (price)). – Maroun

+0

@MarounMaroun все еще получил ошибку, похоже, что проблема заключается в том, что код не может обрабатывать ввод символов в текстовом поле. – noobprogrammer

+0

. Вы должны обработать свою проверку с помощью javascript/jquery на insertproducts.jsp, а затем на doinsertproducts.jsp, просто проверьте значение null и получите параметр. –

ответ

0

Попробуйте это:

String price = request.getParameter("price").toString(); 
String errorMessage = ""; 

if(price != null && price != ""){ 
    try{ 
     intPrice = Integer.parseInt(price); 
     if(intPrice > 0){ 
      System.out.println("Price " + intPrice + " is greater to 0."); 
     }else{ 
      System.out.println("Price " + intPrice + " is less then or equal to 0."); 
     } 
    }catch(Exception ex){ 
     ex.getMessage(); 
     errorMessage = "Price is not a Number."; 
     response.sendRedirect("../insertproducts.jsp?insertproduct="+producttype+"&err="+errorMessage); 
    } 
}else{ 
    errorMessage = "Price was not given."; 
    response.sendRedirect("../insertproducts.jsp?insertproduct="+producttype+"&err="+errorMessage); 
} 
+0

@noobprogrammer Попробуйте код выше и спросите меня, если вы найдете какие-либо трудности. –

Смежные вопросы