【发布时间】:2013-11-21 05:15:07
【问题描述】:
我需要能够将对象中的值与 int 进行比较,但我似乎无法让类型转换工作。我已经尝试了这里描述的所有方法:Session attribute access and converting to 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) {
...
}
%>
【问题讨论】:
-
字符串不是整数,因此将字符串转换为整数没有意义。如果您想将字符串转换为数字,请查看
Integer.parseInt。 -
如果
session是null,此代码将抛出NullPointerException。如果session.getAttribute("test")返回null,带有parseInt的版本将抛出相同的异常。你确定你打电话给session.setAttribute("test", someInteger)? -
如果你确定字符串只包含 digist 那么你为什么不使用
Integer.parseInteger() -
我已经尝试过了,但它给了我一个不同的错误。