日期:2014-05-18  浏览次数:20729 次

jsp问题,快疯掉了!
<html>
    <body>
<%
TeacherVo   tv=new   TeacherVo();
String   tnos   =   tool.formatString(request.getParameter( "tno "));
tv.setTname(request.getParameter( "tname "));
tv.setTpassword(request.getParameter( "tpassword "));
tv.setTtel(request.getParameter( "ttel "));
tv.setTaddress(request.getParameter( "taddress "));
if(!tnos.equals( " "))
{
int   tno   =   Integer.parseInt(tnos);
tv.setTno(tno);
}
try{
if(!tnos.equals( " "))
{
DAOFactory.getTeacherDAOInstance().update(tv);

%>
  教师信息插入成功请 <a   href= " "> 返回 </a> 。
<%  
}
else   {
DAOFactory.getTeacherDAOInstance().insert(tv);
%>
教师信息修改成功请 <a   href= " "> 返回 </a> 。
<%  

}
}catch(Exception   e){

%>
  数据库操作发生错误错误! <a   href= " "> 请返回! </a> <%e.printStackTrace();   %>
<%  
  }
%>
    </body>
</html>


从别的页面传过来,其中request.getParameter( "tno "))明明是空的,
在这个页面怎么会报:
java.lang.NumberFormatException:   For   input   string:   "null "
java.lang.NumberFormatException.forInputString(Unknown   Source)
java.lang.Integer.parseInt(Unknown   Source)
错呢。根本就没有走
int   tno   =   Integer.parseInt(tnos);
这句啊??!!
郁闷坏了。

------解决方案--------------------
你的tnos分明是null,转成String就是 "NULL ",当然要执行
if(!tnos.equals( " "))这个里面的内容了
------解决方案--------------------
先判断一下:
if(null!=request.getParameter( "tno "))
{
String tnos = tool.formatString(request.getParameter( "tno "));
}
------解决方案--------------------
可以自己写过class

public class StringUtil{
public static String formatString(String tempValue,String defaultValue){
if(tempValue==null||tempValue.equals( " ")){
tempValue=defaultValue;
}
return tempValue;
}
}

调用的时候可以
String tno=SystemUtil.formatString(request.getParameter( "tno "), "空值 ");
如果提交过来的是null值或空值,则设为默认值 "空值 ",
这样写的话,对于维护性很好,