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

原创 2013年12月02日 16:02:55

关于动态调用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则为空


services-config.xml配置文件来设置

1.1.1.      services-config.xml配置文件来设置 (1) 修改工程的属性,修改“附加的编译器参数”,设置services-config.xml配置文件的路径,指向刚建...
  • ttbat
  • ttbat
  • 2012年04月20日 16:56
  • 2099

ActionContext和ServletActionContext区别

1.ActionContext  xwork框架的ActionContext是Action执行时的上下文,存放Action执行时需要用到的对象。在使用webwork时,其中放有Parameter、Se...

struts2 :Error building results for action login in namespace

 异常信息:严重: Exception starting filter struts2Error building results for action login in namespace  - a...

struts2中如何自动加载xml文件(不用修改配置文件)(转)

主题:struts2中如何自动加载xml文件(不用修改配置文件) 转自:http://www.iteye.com/topic/338419   config Xml代码   ...

Struts2设置加载非默认路径的struts.xml文件的方法

Struts2设置加载非默认路径的struts.xml文件的方法 2011年06月09日 星期四 上午 11:01 今天找了一下struts2设置加载非默认路径的strut...

struts2设置加载非默认路径的struts.xml文件解决方案+Struts2初学 Struts2的action接收用户数据方式

struts2设置加载非默认路径的struts.xml文件解决方案  (2012-10-17 20:30:35) 转载▼ 标签:  自定义struts.xml路径   struts2 ...

通过web.xml文件自动启动spring容器加载对应的配置文件

在web开发中可以在web.xml文件中配置自启动的servlet或者web容器监听器,借助两者中的任何一者都可以完成启动spring web应用上下文的工作。 下面给出使用web监听器的方式来实现启...

Spring 配置文件xxxx.xml文件中scheme约束exlipse自动加载不了的解决

一、scheme约束文件没有提示问题解决在Spring框架开发中,最核心的一步要数配置xml文件,在eclipse的工作环境下,由于网络等原因,eclipse不能自动在网上下载scheme约束对应的s...

监听文件修改,自动加载xml文件。

转载文章,转载自,公司项目,董亚杰写的。 下面是完整的代码,复制的。 package cn.digitalpublishing.util.debug; import java.io.File; ...

实现MyBatis Mapper XML文件增量动态刷新,自动加载,热加载,热部署

最初启动服务后Mapper XML文件,必须重启服务才能生效,这样就大大影响了我们的开发效率。     网上同学们也有实现类似功能,但都是全部清空,全部刷新XML,这样硬件消耗比较严重,加载时间...
  • tsfall
  • tsfall
  • 2017年02月13日 16:25
  • 1991
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解读struts.xml文件自动加载方法的方式以及service层的自动注入
举报原因:
原因补充:

(最多只允许输入30个字)