struts2根本在request上无法真正实现和servlet解耦!还是和struts1一样,杯具!

举例:

比如说login.action?params=123.


这个params是在LoginAction类里面没有对应的属性和get、set方法的,

 

因为这个只是临时使用!有时候根本不需要弄那么多乱起八糟的属性放在Action类中或者封装在VO里面的。

这里就有一个很严重的问题,Struts2的Action根本就不能实现很好的解耦:

1、对于与servlet无关的的获取客户端的request里面的params的ActionContext.getContext().get("request")

或者

2、实现这些所谓的RequestAware,SessionAware,ApplicationAware接口也根本无法获取获取URL后面直接跟的参数。

他们返回的Map 对象永远都是NULL或者是不包含在URL请求里面的params的,

 

除非你给Action加上这个params属性和get、set方法,那样是可以的!

但是如果不使用struts2所谓能够解耦的方式而使用与servlet有关的方式:

1、ServletActionContext.getRequest();

2、实现ServletRequestAware,ServletContextAware接口。

这个就可以获取URL上面的参数,等于还是和struts1一样的,哎...................



给大家分享吧!

 

你可能感兴趣的:(Strus2)