最近rails很火,我也不落俗套的看了一下。觉得其开发方式很直接了当,十分符合人的思维习惯,并且记住了一句话:“约定优于配置”。
于是我对一个现有的小项目进行了重构,来看一下一个struts的action-mapping配置:
<action path="/*/index" forward="sample.{1}Frame" />
<action path="/*/get*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
validate="false">
<forward name="success" path="/{2}.jsp" />
</action>
<action path="/*/query*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
validate="false">
<forward name="success" path="sample.{1}{2}" />
</action>
<action path="/*/insert*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
input="fail"
validate="true">
<forward name="fail" path="/{1}/query{2}.do" />
<forward name="success" path="/{1}/query{2}.do" redirect="true" />
</action>
<action path="/*/update*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
input="fail"
validate="true">
<forward name="fail" path="/{1}/query{2}.do" />
<forward name="success" path="/{1}/query{2}.do" redirect="true" />
</action>
<action path="/*/delete*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
validate="false">
<forward name="success" path="/{1}/query{2}.do" />
</action>
这就是整个工程的action配置了,是不是很简洁(BeanAction见ibatis的JPetStore)。
每个action path分为两节如/*/inser*,第一节相当于rails中的controller,第二节就是controller的方法了。这个是仿rails的匹配方式,当然你也可以定义自己习惯的匹配方式。
于是我对一个现有的小项目进行了重构,来看一下一个struts的action-mapping配置:
<action path="/*/index" forward="sample.{1}Frame" />
<action path="/*/get*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
validate="false">
<forward name="success" path="/{2}.jsp" />
</action>
<action path="/*/query*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
validate="false">
<forward name="success" path="sample.{1}{2}" />
</action>
<action path="/*/insert*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
input="fail"
validate="true">
<forward name="fail" path="/{1}/query{2}.do" />
<forward name="success" path="/{1}/query{2}.do" redirect="true" />
</action>
<action path="/*/update*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
input="fail"
validate="true">
<forward name="fail" path="/{1}/query{2}.do" />
<forward name="success" path="/{1}/query{2}.do" redirect="true" />
</action>
<action path="/*/delete*"
name="{1}Form"
scope="request"
type="com.whcyit.framework.struts.BeanAction"
validate="false">
<forward name="success" path="/{1}/query{2}.do" />
</action>
这就是整个工程的action配置了,是不是很简洁(BeanAction见ibatis的JPetStore)。
每个action path分为两节如/*/inser*,第一节相当于rails中的controller,第二节就是controller的方法了。这个是仿rails的匹配方式,当然你也可以定义自己习惯的匹配方式。