2015-08-25 4 views
1

Ниже приведен код для автоматического создания номера заказа на поставку из базы данных MySQL в JSP. Я хочу вернуть строку «POno», но она показывает ошибку, потому что она находится вне условия if.Получение возвращаемого значения в JSP

Как я могу получить эту строку в качестве возврата?

<%! 
    public String autoPONo()throws SQLException{ 

     rs=pst.executeQuery(); 

     if(rs.next()){ 
      String po= rs.getString("max(PONo)"); 
      int intNo = Integer.parseInt(po); 
      intNo+=1; 

      String POno = Integer.toString(intNo); 
     } 

      return POno; 
    } 
%> 
+1

Почему получаю 'PONo' в виде строки и преобразования его в' int', вы можете напрямую использовать 'rs.getInt' это может уменьшить' Integer' разборе. – Srinu

ответ

4

Объявите переменную otsido вашего цикла:

<%! 
    public String autoPONo()throws SQLException{ 
       String POno = null; 
       rs=pst.executeQuery(); 

       if(rs.next()){ 
        String po= rs.getString("max(PONo)"); 
        int intNo = Integer.parseInt(po); 
        intNo+=1; 

        POno = Integer.toString(intNo); 
       } 

      return POno; 
     } 
    } 
%> 
+0

Дополнительная информация: http://www.java-made-easy.com/variable-scope.html –

1

Вы должны объявить Pono из КРП или вернуться внутрь, если, так что Pono доступен для оператора возврата.

rs=pst.executeQuery(); 

    String POno = ""; 
     if(rs.next()) { 
      String po= rs.getString("max(PONo)"); 
      int intNo = Integer.parseInt(po); 
      intNo+=1; 
       POno = Integer.toString(intNo); 
     } 

    return POno; 

или

rs=pst.executeQuery(); 

    if(rs.next()) { 
     String po= rs.getString("max(PONo)"); 
     int intNo = Integer.parseInt(po); 
     intNo+=1; 

     String POno = Integer.toString(intNo); 
     return POno; 
    } 

    return "";