【更懒一点】
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 外挂 = 超级省事