jy02411368 2011-12-03 00:24
浏览 197
已采纳

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条回答 默认 最新

  • JamesZhao1987 2011-12-03 09:42
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据