您的位置:首页 > 编程语言 > Java开发

使用契约优于配置的方式开发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子包下面,例如:

        

类的完整名称
映射的命名空间

映射的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

 

         通过上面的表格我想坑定能够彻底明白conversion plugin的url映射规律了。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐