seasar框架下表单的获取

  最近在做一个web项目,由于以前一直在c/c++线上徘徊,对于其他的语言也涉猎很少,所以阿,做的还是不够理想的。

  由于是对日外包的项目,而客户坚持要用seasar框架,据说此框架在日本非常的“时髦”。seasar+s2struts+s2dao+mayaa,此组合确实在某些方面比spring 或者struts要简单的多。而且其中的很多部分也设计的比较的人性化。分述如下:

  关于struts就不多说了,mayaa支持struts标签库。在pagename.html和pagename.mayaa中,相关联的部分用id连接起来。这也是在制作页面时,seasar最推崇备至的地方。

  s2dao是关于数据库的处理,当然我们在处理一些比较简单的增删改查时确实可以体会到他的优势,在entity里设置的bean和数据库的表名相同的情况下,所描述的方法会自动的完成所要执行的操作。可是如果要执行比较复杂的sql语句的话,那就是一个比较麻烦的问题了。我还是喜欢用最直观的struts里的方法。

  言归正传,此框架下的action是用来执行页面跳转的。不是类似struts下继承的action。他直接的和页面表单联系在一起。今天发现了一个很有意思的事情:我在action里定义了一个属性,他可以在mayaa里面执行各种判断,可是却很难将它直接的发布到表单,会抛出异常,而且情况还很不稳定似的。后来不得已将之放在一个dto里就没有任何问题了。可是这样却带来了另外的一个意想不到的苦难。因为我要在session里使用这个定义的属性值,可是即使用@ExportToSession将dto放在session里,由于在此action里我设置了几个方法来完成不同的跳转,于是乎,对于每一个方法,在不同的request里将dto分别初始化了,而且提取出来的值是在request里初始化后的值,也就是0。而先前的session里的值却是不值如何取了。

上面的情况还是首次碰到,下午花了两个小时的时间来进行在session和request里分别取值,结果却搞得自己都蒙了。其实有两种其他的方法可以解决我所要求的问题,可是我就是想弄通一件事情,结果把自己给搭拉进去了。

方法如下:对不同的跳转分写不同的action,这样确实比较的繁琐,想象如果实现十多个跳转的话,那重复的工作量还是挺客观的。其次就是看是否有完成此功能的库函数,直接调用就可以了。

由于我所学也不过月余,许多细节的地方可能说的比较的模糊,但我想熟悉这个框架的人士应该可以看懂大概吧,看来以后我要多多努力了,不论是基础知识还是表达。

 

 

你可能感兴趣的:(设计模式,spring,框架,struts,ssh)