站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题表单提交后的字符转float型的问题

表单提交后的字符转float型的问题

摘要: 表单提交后的字符转float型的问题


如题,form中有个type为text的用来输入数字。提交后用什么方法转换成float
我试过Integer.parseFloat(String s)和Float.valueOf(String s).valueFloat();
前一种报错
找不到符号
符号: 方法 parseFloat(java.lang.String)
位置: 类 java.lang.Integer
float money=Integer.parseFloat(salary);
^
后一种能编译通过,但是还是不能转换,求师兄们帮帮忙,看有其他方法没。



说错了,第二个方法是Float.valueOf(String s).floatValue()


第二种报的错是:
exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.NullPointerException
sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
java.lang.Float.valueOf(Unknown Source)
org.apache.jsp.TIS.addeinfo_jsp._jspService(addeinfo_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)




1.没有发现有Integer.parseFloat(salary)的方法
只有Integer.parseInt(str)
你可以 float money=(float)Integer.parseInt(salary);

2.你也可以直接用float money=Float.parseFloat(salary);


应该是这样的把:float money=Float.parseFloat(salary);



在页面上是使用parseFloat(java.lang.String)这个来转换,在后台代码里是使用
float money=Float.parseFloat(salary);
前提是转换里面的值不能为空或是为字符


catch一下,做异常处理



我改成try{
float money=Float.parseFloat(salary);
}
catch(Exception e){
e.printStackTrace();
}
后这里能通过了
但是居然还是报错。请各位师兄帮我分析下:
F:/zhou/tomcat/webapps/TH/work/org/apache/jsp/TIS/addeinfo_jsp.java:103: 找不到符号
符号: 变量 money
位置: 类 org.apache.jsp.TIS.addeinfo_jsp
String s1="insert into employees values('"+id+"','"+name+"','"+sex+"','"+edu+"','"+addr+"','"+zip+"','"+phone+"','"+cphone+"','"+birth+"','"+mary+"','"+btime+"','"+etime+"','"+wkind+"',"+money+",'"+s+"','"+remark+"')"; ^





那个向上的小箭头是指着money的“m”


说明你的money没有声明
最大可能,你把money声明在try、if、for...里面了


我现在把money放到了和s1一样的try catch里。能通过了。但是现在新问题又来了,我之前都没碰到过这个问题,我照着以前的图片上传的解决方法,把图片保存到文件夹,但是现在居然报这个错:
org.apache.jasper.JasperException: This path does not exist (1135).
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
我以前解决图片上传的时候都没遇到过,我是用jspsmartupload上传的。请帮我分析下看有可能是什么地方出了问题


以上的问题当我没说
新的问题来老
表单传值到处理页面传过去的全是null
请师兄些帮忙分析下


现在能传值过去了,但是除了数字全是乱码。我GBK和gb2312字符编码都试过。请问怎么解决?


new String(str.getBytes("ISO-8859-1"), "GBK").trim();

这个试试


This path does not exist (1135).

这个应该是你存图片的路径不对




图片问题解决了。请问花花。每个传过去的值都这样弄啊
说具体点,先谢谢了


你把这写成一个函数,然后把每个传过来的值都调用一下不就得了
要不你就查资料,加个过滤器

呵呵,你写一个公共方法每次调用好了
/**
* 处理null值,将null转换成空字符串,如果非空字符串则将其专码,显示到页面上,
* @param str String
* @return String
*/
public static String changeNvl(String str) {
try {
str = (str == null) ? "" :
new String(str.getBytes("ISO-8859-1"), "GBK").trim();
}
catch (Exception ex) {
ex.printStackTrace();

}
return str;
}


↑返回目录
前一篇: 华资软件现在开始承接各种软件外包项目!!
后一篇: 大师们,进来看看,一个关于servelt无法正常显示的散分问题!