java strut2通配符_Struts2的通配符配置方式

Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类:

让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中定义了很多帮助方法)

让你的Action类实现Action接口

使用POJO的方式来实现,只要Action类中有一个返回值为String的execute方法就好了(这种方式使Action类最容易被测试)

以上三种Action的实现方式都可以被struts2框架自动识别,如果你在struts.xml里面配置了一个action块但是没有配置action类的路径,这样框架默认使用ActionSupport来处理请求。

但是在实际使用struts2的过程中我发现了一个问题,一个Action只有一个execute方法来处理一类请求,如果我开发的某块功能有100个不同的请求那我岂不是要写100个Action类,每个类实现一个execute方法,这样虽然满足了一个类一个责任的设计原则,但是会不会造成“类爆炸”?后来看了struts2的文档才知道,其实我们可以使用struts2灵活的通配符配置来达到减少action类的目的:

先来看看一个简单的时序图

1UAAAAASUVORK5CYII=

请求从这个页面发起,只是简单的两个链接

Insert title here

ADD INFO

DEL INFO

请求的控制转发是在struts.xml里面配置的

/{1}info.jsp

add,del

上面这个XML的配置内容有几点需要注意:

我开启了struts2的RMI,apache struts基于安全性考虑,RMI默认是关闭的。

大家看到action name的值跟平常有点不一样,我使用了星号通配符用来匹配JSP中的两个链接:infoadd和infodel, 要配置method="{1}", 这样要被调用的method名字就分别是add和del了。

result的JSP页面的名字也可以用通配符来配置,我分别定义了两个JSP,addinfo.jsp和delinfo.jsp,这样正好一一对应。

注意在struts2.5之后,基于安全性考虑struts2默认开启了SMI,必须显示定义Action中能被请求调用的方法,所以我有配置

看看这个Action类

public class MyFirstAction extendsActionSupport {publicString add() {returnSUCCESS;

}publicString del() {returnSUCCESS;

}

}

这个demo是为了测试struts2的通配符配置,所以两个JSP里面的内容只是返回一句话而已,这里我就不贴出来了,现在看看调用,我点第一个链接:

sOQvGNajnPJnU0YAAAAASUVORK5CYII=

D7TwAgHDeFsdAAAAAElFTkSuQmCC

点第二个链接

weCtGucfe+DUwAAAABJRU5ErkJggg==

由此可见,struts2的通配符配置真的是很灵活很强大滴,这样我们在实际项目开发中可以少写很多Action类并减少很多配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值