对于演示原型,上午要下午给的快速交付,或者某些不知道到底一年有多少个人点进去的网站角落,或者极少数管理人员才用到的管理功能,在恨不能php,ror的时候,你会想起jsp jdbc的温暖。
又或者你请到了只会写jsp和sql的极品,又想让他明天开始干活.....
所以在ss3里另做了这个 , 在简化到no config file的jsp jdbc同时,仍然是个可堪一观的mvc,仍然基于亲爱的spring.
view层:一个jsp
web应用里,单纯的内容展示型场景占绝大多数。我们也单纯的在jsp的开始代码调用model层的service bean查出所需内容。
一页到尾,不要再扯什么struts2 action,什么struts.xml。 (见 )
内容展示时可以继续忍受旁人的鄙视,直接在页面中嵌入jsp显示代码;也可以将查询结果放入贯通两界的pagecontext里,换用jsp2.0 el和jstl taglib来作展示。
controller层:还是一个jsp
少量的用户提交内容的场景,就会来到这个代替struts2 action的jsp,由它来调用model层的service bean,然后又redirect/forward回view层的jsp。
如果顺手,可以用spring的databinder 将request参数绑定到dto。否则继续复古的用n多request.getparameter("foo")手工组合。 (见 )
model层:一个使用spring jdbctemplate的pojo
为什么不继续用jsp,彻底的改代码不重启服务器?因为舍不得spring的jdbctemplate/datasource/transcation这一系列功能。
用spring 2.5的@service注册bean,就不用在applicationcontext.xml定义bean了。
然后继续用@transcational 定义事务,不再编写commit/rollback语句。
spring的simplejdbctemplate其实也挺好用的,顺手的话,可以将输入参数和resultset都直接反射到dto上。
不顺手的话,用mapsqlparametersource绑定dto到输入参数,用parameterizedrowmapper绑定resultset到dto。 (见 )
除了上面几点,其他地方也简化退化了,比如maven的功能退化到jar管理,连接池直接用commons-dbcp定义不依赖应用服务器等等...