J2SE基础思考题........菜鸟问题.....................

是这样的,闲来无事就随便写了一个例子,大概的结构如下

1.首先我有一张表 Person 这个表显示人员的信息。

2.其次,我在业务层判断这张表是否合法.其实就是判断表中是否有信息。

3.最后在Action当中根据业务层传来的结果负责转向。

然后我查询到了Person这张表,把所有数据装入了ArrayList里面,可是这时候在业务层我判断了ArrayList.size()是不是等于0,如果等于0的话就返回false,让Action跳转到Error.jsp.如果成功就返回true,页面跳转到Success.jsp....可是假如最初Person这张表是确实的查询到了,只是表里面没有数据,但并不能代表压根没有查询到数据.这个时候其实是应该跳转到Success.jsp页面然后输出“占无数据”的信息。而不是仅仅使用ArrayList的size()方法去简单的判断表中无数据就跳转到错误页面。

好吧,如果这里必须使用ArrayList中得方法去合理的判断(注意是必须使用ArrayList不能使用其它集合类):假设如果查询到了表或者虽然查询到了表但是表中没有数据都应该返回Success.jsp,只有当没有查询到表时才返回Error.jsp 该怎么做?没错很多人或许想到只要查询没有异常,就都转向到Success.jsp 可是系统总会存在隐患(比如某些特殊原因即使没有查询到表,程序有时也不会报异常)所以我认为这种判断并不安全。

好久没上了,发现没分了。。。不好意思。

不知道谁有更好的办法。。。抛开理论设计与业务逻辑,只谈用ArrayList如何解决该问题?

2个回答

你可以看一下没有查到表时抛出的是什么异常,然后对该异常进行捕捉,如果捕捉到该异常时返回null,所以在业务层就可以判断如果返回的list为null表示表不存在跳转到error.jsp,如果list.size()为0时表示表存在但是没有数据。仍然调整到success.jsp,在没有表的情况下去查询该表一定会抛出异常。

你应该判断ArrayList是不是为空,而不是简单的用size()方法。试一试,看看可以不。。楼主以后可不可以问题简单化些~太长~也可以贴代码~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问