关闭

解读struts.xml文件自动加载方法的方式以及service层的自动注入

标签: strutsspringaop编程
1564人阅读 评论(0) 收藏 举报

关于动态调用action类中的方法

(如果不动态调用,那么就是默认调用action类中的execute()方法)

方式一:

配置文件不用改,但是请求的路径要改为:action类名+!+方法名+.action
比如,UserAction中有一个login方法,那么请求路径(表单中的action值)为:user!login.action

方式二:

需要修改配置文件,假设UserAction中有一个login方法,那么<action>节点就要加一个属性method,值等于login
<action name="user" class="cn.struts2.action.UserAction" method="login"> ....(result节点) </action>

方式三:

使用通配符的方式,
比如:<action name="user_*" class="cn.struts2.action.UserAction" method="{1}">
这里的*是通配符,可以匹配任意字符,而method的值{1}就是*的内容,
比如页面请求user_login.action,那么{1}就等于login,就是说method="login",那么根据第二种方式,就会执行UserAction中的login方法
同样,通配符可以用多个,
<action name="*_*" class="cn.struts2.action.UserAction" method="{2}">
页面上请求user_login同样可以调用login方法,但是这里method={2},通配符是匹配的字符串,
这里第一个*相当于user,第二个*相当于login,所以method="{2}"

所以,当请求的方法是第n个*的内容时,method={n}



spring配置 在*Action中自动注入service层中相应的*Service

 (在application-core.xml文件中加入AOP编程添加事物)

<bean id="loginService"  class="org.xxxxx.services.impl.LoginServiceImpl"></bean>

 <bean id="loginAction" class="org.xxxxx.action.LoginAction">

 

 </bean>

 

struts配置

<action name="login" class="org.xxxxx.action.LoginAction">
   <result name="success">/result.jsp</result>
   <result name="error">/login.jsp</result>
  </action>

 

注意看以上两个红线部分,在struts.xml中action指定的class像上面这种方式指定全类路径名的话,这时,不论spring配置文件中的<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有没有指定<property name="loginService" ref="loginService"/>,只要有<bean id="loginService" .../>存在,并且这个ID的名字与Action中成员bean的名字一致,当实例化Action类时,会一并将loginService的实例注入

 

如果<action name="login" class="loginAction">这里的class指定spring配置文件中的bean的id,则不会出现loginService自动注入问题,而是根据<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有没有指定<property name="loginService" ref="loginService"/>来决定,有<property name="loginService" ref="loginService"/>的指定,则实例化Action类时,会一并将loginService实例注入,没有配置property,loginService则为空


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:292809次
    • 积分:2813
    • 等级:
    • 排名:第12798名
    • 原创:65篇
    • 转载:17篇
    • 译文:0篇
    • 评论:11条
    最新评论