2013-11-21 39 views
0

我需要能够将对象中的值与int进行比较,但似乎无法使类型转换工作。我已经尝试了这里描述的所有方法:Session attribute access and converting to int?但它们都给我一个空指针异常。这是我没有工作的代码。如何将类型对象转换为jsp中的int

以下是将值放入会话中的代码。

<script>sessionStorage.clickcount=1;</script> 
<input type ="hidden" name="ttmp" value="222" id="ttmp" /> 
<script>document.getElementById('ttmp').value = sessionStorage.clickcount;</script> 

这是在脚本前后用输入行尝试的。

<% 
    String value = request.getParameter("ttmp"); 
    if (value != null) { 
    session.setAttribute("test", value); 
    } 
    Integer userid = Integer.parseInt(session.getAttribute("test").toString()); 
    ... 
    if (userid == 1) { 
    ... 
    } 
%> 
+3

字符串不是整数,所以将字符串转换为整数没有任何意义。如果你想将字符串转换为数字,请查看'Integer.parseInt'。 – cHao

+0

如果'session'为'null',这段代码将抛出'NullPointerException'。如果'session.getAttribute(“test”)'返回null,那么带'parseInt'的版本将抛出相同的异常。你确定你已经调用'session.setAttribute(“test”,someInteger)'? –

+0

如果你确定这个字符串只包含digist,那你为什么不用'Integer.parseInteger()' – NewUser

回答

2

试试这个Integer.parseInt((String)session.getAttribute("test"))

<% 
    String value = request.getParameter("ttmp"); 
    if (value != null) { 
    session.setAttribute("test", value); 
    } 
    Integer userid = Integer.parseInt((String)session.getAttribute("test")); 
    ... 
    if (userid == 1) { 
    ... 
    } 
%> 
+0

这给了我这个错误:PWC6199:生成的servlet错误: 找不到合适的parseInt方法(java.lang.Object) 方法java.lang.Integer.parseInt(java.lang.String)不适用 (实际参数java.lang.Object中无法通过方法调用转换被转换为java.lang.String) 方法java.lang.Integer.parseInt(java.lang.String中,INT)是不适用 (实际和正式的参数列表的长度不同) – user2532973

+0

@ user2532973把它转换成字符串然后转换,检查我更新的答案 – SpringLearner

+0

好吧,现在我得到一个不同的错误:java.lang.NumberFormatException:null – user2532973

1

现在试试这个。

<% 
String value = request.getParameter("ttmp"); 
if (value != null) { 
session.setAttribute("test", value); 
} 
int userid=0; 
if ((session.getAttribute("test") != null) && (session.getAttribute("test") != "")) 
{ 
    userid = Integer.parseInt(session.getAttribute("test").toString()); 
} 
%> 
+0

返回此错误:java.lang.NullPointerException – user2532973

+0

String value = request.getParameter(“ttmp”); 值变量应包含一些可以稍后转换为整数的数字。 –

+0

我将ttmp的值设置为2,但我仍然收到空错误 – user2532973

相关问题