小编先容一下项目的现状先:大体先容:表示层利用JSP,掌握层利用STRUTS2,业务逻辑层利用自己封装的service类,持久层利用SPRING的JDBCTemplate封装SQL。
我现在的调用流程是这样的:JSP(表单参数[参数形式:model.propertyName])--->ACTION(引用一个实体工具作为成员属性,struts2框架自动封装要求参数到实体工具)--->调用service层的业务逻辑方法(层之间的参数通报依然是ACTION中封装的实体工具)---->service方法处理实体工具(实体工具可能嵌套)并调用多个DAO操作,且封装事务--->DAO操作(从service层传过来的参数依然是ACTION中的实体工具,只是由service处理过了)也便是说,层与层之间的接口的参数,我都利用了一个实体工具(当然实体工具会有嵌套关系,这样就可以操作多个实体),或者在明确了参数仅须要ID的时候,参数为int型的ID(如:根据ID查询某条记录的详细信息时)有几个困惑如下:1.表示层的表单参数的name觉得依赖于实体工具,尤其是实体嵌套的情形,比如某个表单项可能要这样写:name=user.department.deptName,乃至更长.想问一下,这样好吗?表单参数和实体类属性纠缠在一起2.查询的时候,我喜好直策应用spring的jdbcTemplate封装,利用queryForList等方法,直接返回LIST或MAP,从DAO方法返到SERVICE方法一贯到ACTION中,再将LIST或MAP添加到request中,在JSP页面上,直策应用EL表达式${list.数据库字段名}来显示这样有个坏处,表示层直接和数据库字段扯在一起了...但是确实方便,想请教一下,老师们是怎么做的?是不是这样:DAO卖力从数据库中select数据,并封装成相应的实体工具或实体工具凑集,然后返回到页面去展示吗?3.接着问题2,想问一下,查询得到的数据,有没有一种办法,可以灵巧动态的定制字段列表,比如同一个查询,但是我须要的显示字段不同,类似于[粗略展示记录列表]和[某记录的详细信息]这两种情形我目前是将所有的字段全查出,封装成list或map,一并送去表示层,须要的显示,不须要的就不显示,这样该当是摧残浪费蹂躏传输资源的吧...4.是不是我的这种做法,实体工具便是传说中的DTO ? 我这种情形是否属于DTO满天飞的情形....老师指示啊5.看了不少干系文章,记得文章中说过,利用Hibernate的情形,实体工具的持久性子(如ID),不应该带到表示层去,该当剥离持久性子再传到表示层去显示...这里有个疑问:比如我选中某条记录进行修正,步骤是:1.根据选中记录的ID取出记录的详细信息并显示--->2.修正详细信息--->3.要求ACTION-->4.业务逻辑-->5.DAO做出修正个中步骤2修正的页面中,肯定要保存一个hidden表单项---即该记录的ID,以便要求修正时知道所修正的是哪个记录?老师们,延误韶光指示一下了...多谢!

mapjsp页面打不开条理架构的迷惑 RESTful API