【更懒一点】

struts2 比较繁琐的地方就是要编写struts.xml不过比起struts1有很大的进步,因为struts2有更多的技巧可以用来节省开发时间.

其中 Wildcard 和 Codebehind外挂是很强的利器

传统的web page设计网页是一个地址对应一个档案,但是struts的对应是参照control的设定档

如果每个action,view之间的关系有一定的规则,但是量特别大

这时候,设定档就会很冗長,让人觉得这是一个笨蛋做的事情

举例来说,如果你希望 网址 到 action 之间的关系是一个萝卜一个坑

如果网只是XXX

action这个类别就是app.action.xxx

那么这样的设定就可以做到哦

<action name="*" class="app.actions.{1}">
...
</action>

怎么一来,当你输入http://localhost:8080/test/Hello.action

struts就好帮你产生app.action.Hello这个类别

 

过去的struts令人詬病的地方就是设定档超多,学习起来很痛苦

后来的framework都越来越重视convention(惯例)

Struts2 保留了设定档, 也让我們可以透過萬用字元建立惯例
这样一来开发 Web 应用程式就不會像过去那么痛
也不会经常做一些重复的蠢事了

[懒到极点]
Struts2 有個外挂叫做 Codebehind
这个外挂是个惯例工具, 他有两项功能可以大幅減少开发时间

1.预设对应
预设对应功能是专为不需要用到 Action 的网址所设计, 可以用在静态档案上
2. 预设結果
预设结果功能是Action执行完后自动导引到某一個预设的View
这能够帮助开发人员在有规则的地方不用再花时间去设定
这部份是接下來会介绍的

Codebehind 外挂不需要进行设定, 只要确定外挂的 jar 档案在 WEB-INF/lib 目录中即可
确定外挂有了之后可以把 struts.xml 中 action 的部份改成这样

<action name="*" class="app.actions.{1}"/>

这个action設定只有一行喔
而且完全沒有指定result
假如你的网址是 http://localhost:8080/test/Hello.action
那么 Struts 就会自动跑去建立 app.actions.Hello 物件來执行 (利用萬用字元)
执行完 app.actions.Hello 之后会自动导引到 Hello.jsp (利用 Codebehind 外挂)
这样一來只有跟规则不一样的导引关系才需要设定
可以让 struts.xml 更为简洁当然开发也变更轻松咯

[建议]
Wildcard (万用字元) + Codebehind 外挂 = 超级省事 

 

 posted on 2012-05-21 19:58  蔡傑儒  阅读(820)  评论(0编辑  收藏  举报