action的几种映射方式

近日学习struts2,其中action的映射方式有好几种,例子整理如下:

1.单个动作对应单个action

action中只有一个方法,没有添加任何逻辑,代码:

import com.opensymphony.xwork2.ActionSupport;


public class SampleAction extends ActionSupport {

	public String sayHello() throws Exception{
		return ActionSupport.SUCCESS;
	}
}

 struts配置文件部分:

<action name="sayHello" class="SampleAction" method="sayHello">
	<result>sample.jsp</result>
</action>

 jsp文件代码很简单,只输出两个单词:

<html>
  <head>
  </head>
  <body>
  <div>
  Hello,world.
  </div>
  </body>
</html>

 可以这个地址访问:http://server:port/appname/sayHello.action

2.单个action类对应单个action配置,动态方法调用方式

这种方式只有配置文件与第一种不同,action类和jsp文件不变,下面是配置文件部分:

<action name="sampleAction" class="SampleAction">
    	<result>sample.jsp</result>
</action>

 访问地址如下格式:http://server:port/appname/sampleAction!sayHello.action

3.通配符映射方式

同样,action类和jsp文件不变,配置文件部分如下:

    	<action name="*_*" class="{1}" method="{2}">
    		<result>sample.jsp</result>
    	</action>

 用地址:http://server:port/appname/SampleAction_sayHello.action访问,类名取自action名字的第一部分,

方法名取自action名字的第二部分,即后一个*号的字符;大型企业应用,可以用这种方式,会节省配置时间,减少配置文件。

4.使用注解,达到零配置效果

这种方式通过注解把配置信息写在action类里,省却了配置文件,但是也增加了硬编码;这种方式除了在action类里编写注解信息外,在web.xml文件里也要添加一个参数,修改部分如下:

<filter>
  <filter-name>Struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  <init-param>
  	<param-name>actionPackages</param-name>
  	<param-value>annotation</param-value>
  </init-param>
 </filter>

 增加了名字为actionPackages的初始参数,其值为注解action的包名,多个以逗号隔开。

添加注解的action:

package annotation;

import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import org.apache.struts2.dispatcher.ServletDispatcherResult;

import com.opensymphony.xwork2.ActionSupport;
@Results({
	@Result(name="success",value="/annotation.jsp",type=ServletDispatcherResult.class)
})
public class AnnotationAction extends ActionSupport {

	public String execute()throws Exception{
		return ActionSupport.SUCCESS;
	}
}

 jsp文件同样只输出了两个单词:

<html>
  <head>
  </head>
  <body>
  <div>
  Hello,annotation.
  </div>
  </body>
</html>

 struts翻译action,把类名的第一个字母小写,去掉后面的action,生成的访问地址如下:

http://server:port/appname/annotation.action

以上就是action映射的几个例子,最近正好有时间,就整理了一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值