struts2 基于convention的开发(1)

本文介绍如何利用Struts2框架中的通配符简化增删改查操作的配置,通过示例展示了如何使用*_*通配符减少冗余配置,并给出了一套约定,帮助开发者更高效地进行开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      当你使用struts2开发一个user实体的"增删改查"应用时,你或许是这样

来配置action

   <action name="createUser"    
             class="com.mycompany.webapp.user.UserAction" 
             method="create">
     <result name="success">/user/userCreate.jsp</result>
     <result name="input">/user/userEdit.jsp</result>
     <result name="home">/user/home.jsp</result>
  </action>

........

其所对应的url可能是这样:/app/createUser.action,/app/retrieveUser.action,

/app/updateUser.action,/app/deleteUser.action

依次类推,一个实体的"增删改查"需要重复4次这样的工作。一个实体类已有如此多配置信息。多个实体又如何呢?

 

那么我们可以使用struts2的另一个功能:在action标签中的name属性里指定wildcard(通配符)。

struts2提供星号(*)的通配符,以上应用我们可以这样配置:

<action name="*_*" class="com.mycompany.webapp.user.{2}Action" method="{1}">
    <result name="success">/{2}/{1}.jsp</result>
    <result name="input">/{2}/edit.jsp</result>
    <result name="home">/{2}/home.jsp</result>
</action>

其所对应的user实体的url可能是:/app/create_User.action,/app/retrieve_User.action,

/app/update_User.action,/app/delete_User.action

这样的话其它的实体也可以使用这种convention。

请注意在name属性中的分隔符显然是要有的,不然就无法区分两个星号所配置的部分

现在大概来总结一下此应用的convention:

1 action类的命名为:实体名称(大写)+Action

2 action标签中name属性的值为:方法名称+实体名称(大写)

3 实体所对应的jsp文件放在实体名称所对应的目录里面
4 初始jsp页面文件名称定义为"home",

validatation返回页面(也就是input所定义的页面)文件名称定义为edit 
5 在success中定义的jsp文件名称为:方法名称

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值