使用契约优于配置的方式开发Struts2的MVC程序(二) ---action
2014-09-24 12:04
344 查看
上一个实例中已经演示过了jsp页面是如何使用契约优先得方式访问,主要通过访问jsp页面来检查环境配置是否完好。本次重点介绍如何使用契约优先的方式访问Action,下面就开始:
第一:创建一个普通的Action类,命名FirstAction,代码如下:
packagecom.xt.s2conversion02.actions;
import com.opensymphony.xwork2.ActionSupport;
public class FirstAction extends ActionSupport {
@Override
public Stringexecute() throws Exception {
System.out.println("executein FirstAction#execute!");
//本例只想重点演示如何通过URL访问到我们的Action,至于视图的显示后面
//再说,所以只返回null
return null;
}
}
以上代码注意观察标注红色地方,即actions,因为在struts2的官方文档中有这么一句First the Convention plugin finds packages named
struts, struts2, action or actions.意思是说Convention plugin只会把位于struts、struts2、action和actions这几个包中的action进行预处理(即可以通过特定的url来访问action不需要额外配置),所以我们要注意,如果你的Action放在除以上几个包的其他包中,很可能失败。
第二:访问测试---打开浏览器输入http://yourhost:yourport/yourappname/first 至于yourhost之类的是什么意思,可以参照之前的一篇里面的解释,这里不再赘述。我这里使用的是:http://localhost:8080/s2conversion02/first。结果如图
当然网页中没有内容,以为之前解释过,FirstAction没有跳转到任何视图,而且FirstAction本身也没有输出任何信息所以整个页面是空白的。但是在控制台输出了“execute in FirstAction#execute!”可以说明Action访问是成功的!通过上面的结果可以看出来,struts2的url生成规律是把XXXAction映射成xXX。
第三:补充----如果有更多其他的Action位于actions子包下面,例如:
通过上面的表格我想坑定能够彻底明白conversion plugin的url映射规律了。
第一:创建一个普通的Action类,命名FirstAction,代码如下:
packagecom.xt.s2conversion02.actions;
import com.opensymphony.xwork2.ActionSupport;
public class FirstAction extends ActionSupport {
@Override
public Stringexecute() throws Exception {
System.out.println("executein FirstAction#execute!");
//本例只想重点演示如何通过URL访问到我们的Action,至于视图的显示后面
//再说,所以只返回null
return null;
}
}
以上代码注意观察标注红色地方,即actions,因为在struts2的官方文档中有这么一句First the Convention plugin finds packages named
struts, struts2, action or actions.意思是说Convention plugin只会把位于struts、struts2、action和actions这几个包中的action进行预处理(即可以通过特定的url来访问action不需要额外配置),所以我们要注意,如果你的Action放在除以上几个包的其他包中,很可能失败。
第二:访问测试---打开浏览器输入http://yourhost:yourport/yourappname/first 至于yourhost之类的是什么意思,可以参照之前的一篇里面的解释,这里不再赘述。我这里使用的是:http://localhost:8080/s2conversion02/first。结果如图
当然网页中没有内容,以为之前解释过,FirstAction没有跳转到任何视图,而且FirstAction本身也没有输出任何信息所以整个页面是空白的。但是在控制台输出了“execute in FirstAction#execute!”可以说明Action访问是成功的!通过上面的结果可以看出来,struts2的url生成规律是把XXXAction映射成xXX。
第三:补充----如果有更多其他的Action位于actions子包下面,例如:
类的完整名称 | 映射的命名空间 | 映射的URL |
com.ghpan.actions.MainAction | / | /main |
com.ghpan.actions.products.Display(补充Display实现Action接口) | /products | /products/display |
com.ghpan.struts.company.details.ShowCompanyDetailsAction | /company/details | /company/details/show-company-details |
相关文章推荐
- 使用契约优于配置的方式开发Struts2的MVC程序(一)
- struts2中使用DMI(动态调用方法)方式配置action
- JAVAWEB开发之Struts2详解(一)——Struts2框架介绍与快速入门、流程分析与工具配置以及Struts2的配置以及Action和Result的详细使用
- struts2使用注解配置Action传参方式
- Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】
- struts2中使用DMI(动态调用方法)方式配置action
- Struts2-Action接受参数方式、method属性使用及通配符的配置
- Struts2使用注解方式开发Action的步骤
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】
- C++开发指导之使用编译期的契约:约束,在编译期发现程序的错误
- Struts2使用注释配置Action
- struts2使用注解配置Action之间的跳转
- struts2中以xml配置方式对action的所有方法进行校验
- Struts2基于XML配置方式实现对Action方法进行校验