空指针错误原因找到了,可是不知道该怎么样解决 我在一个JSP页面的开始部分,在“<%%>”中提取数据库里的数据赋值到变量A中,然后在后面的html语句中通过<%=A%>显示出来,可是在第一次运行该页面时,显示空指针错误,第二次进入就好了。我找到原因,可能是第一次运行时,先执行<%=A%>语句,后执行“<%%>”里给变量A赋值的语句,所以出现空指针错误。我该如何解决这个问题呢?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在“<%%>”中定义变量A时定义初始值了,可是还是显示空指针。我怀疑在运行<%=A%>语句的时候,根本就没有执行“<%%>”中的语句 判断一下,A为空的时候,new一个给他 andyan_2008,改如何写代码?比如:我的名字是<%=A%> 我想是你没有找到出问题的地方,<% String a = null;%><%=a %>在jsp里这样写是不会出问题的,他会显示一个null,而不会报空, 如果是你采用了struts,最好在action里对A赋值并且放在request中,在JSP页面的时候使用<%=request.getAttribute("")>取出来,这样不会出问题。如果只是一个jsp页面,就不大好处理了,JSP页面第一次被访问是先要编译的,编译的时候可能不是自上而下的。 在使用前先判断下,为空则new一个 用EL表达式,就不会出现空指针异常了第二个好处是:假如A的年龄属性为空,jsp<%=A.getAge()%>页面中显示为null(不是想要的)而el表达式${A.age}页面中什么也不显示第三个好处:代码简洁,容易维护,但效率差不多,2者最终都是要编译成servlet的EL用法:要导入jstl.jar和standard.jar包就好了强烈建议抛弃这种方式<%=A%>,太麻烦了还要导入:实体类代码那么冗长 奥,忘了正题了,问题没回答,现在补充一下:在java代码中,把A存入request:request.setAttribute("var",A);在jsp中直接用${ requestScope.A }就好了当然,要导入jstl.jar和standard.jar包另外,你的变量怎么大写啊,不符合规范啊 这个处理的方式显然是不太合适的,当第一次没有调用<%%>中的代码的时候怎么又会执行<%=a%> 如果非要强制的话只能NEW出一个新值, 或者你使用EL表达式,即使是空值也不会报错.但是这不是问题的根本, 建议你把代码贴出来看看 你在数据库取值的时候做非空处理 如果是null 实例个对象 或者给个空串其实你这么做本身是存在问题的。最好是用mfc的思想 去实现 画面jsp就是从bean里面去取值 不用在jsp里面写大量java代码从DB取值在后台去做 设定到bean里面 在后台就处理好null 用Byte[]构造SerialBlob出问题了 java程序的执行看不懂啊 刚来 数据库连接,困扰我三天了,高手救命啊! 怎么获取class是在哪个jar包里面? 组件调用paint后画面就不动了 通过UDP发送文件如何写代码?另让一个监听线程不出现黑屏如何做请线思路! 请问如何扰乱java代码,使别人反编译时难读 请教一个SWING闪烁的问题﹐恳请大家帮帮忙(在线等候) 全局变量值怎么变不了 Swing菜单问题 HashMap值得问题,大家帮忙看看这段代码有没有问题
比如:我的名字是<%=A%>
String a = null;
%>
<%=a %>
在jsp里这样写是不会出问题的,他会显示一个null,而不会报空,
如果只是一个jsp页面,就不大好处理了,JSP页面第一次被访问是先要编译的,编译的时候可能不是自上而下的。
jsp<%=A.getAge()%>页面中显示为null(不是想要的)
而el表达式${A.age}页面中什么也不显示第三个好处:代码简洁,容易维护,但效率差不多,2者最终都是要编译成servlet的EL用法:
要导入jstl.jar和standard.jar包就好了强烈建议抛弃这种方式<%=A%>,太麻烦了
还要导入:实体类代码那么冗长
request.setAttribute("var",A);在jsp中直接用
${ requestScope.A }
就好了
当然,要导入jstl.jar和standard.jar包另外,你的变量怎么大写啊,不符合规范啊
当第一次没有调用<%%>中的代码的时候怎么又会执行<%=a%>
如果非要强制的话只能NEW出一个新值, 或者你使用EL表达式,即使是空值也不会报错.
但是这不是问题的根本, 建议你把代码贴出来看看
其实你这么做本身是存在问题的。
最好是用mfc的思想 去实现 画面jsp就是从bean里面去取值 不用在jsp里面写大量java代码
从DB取值在后台去做 设定到bean里面 在后台就处理好null