真的骄傲梦想家园
专业源于兴趣和努力

第三章  认识PStruts的Action

  PStrutsActionstrut2.0Action很相似,它可以不实现任何接口或继承任何类型,更加方便的是,它甚至不需要配置就能使用。

它可以是一个普通的类,只是多了一个String Execute(); 方法,用于执行Action的业务逻辑。请求Action最简单的方法如下:

new Dispatcher(this).Send(type(Action));

 

 


  Dispatcher类是PStrtus的核心控制器,负责发出Action请求,验证表单数据,对Action依赖注入,执行业务逻辑,
重定向到新的页面或返回调用方法体等一列的操作,它是PStruts功能最多最复杂的一个类,也是使用PStruts的入口。
实例化Dispatcher需要传入当前页面作为构造函数的参数,它也对外公开一个方法Send和它的重载方法。
Send方法用于告诉PStruts需要执行哪个ActionSend方法的定义如下:

 

String Send(Type type);
String Send(String name);

 

 


  第一个方法使用Type类型参数,只需告诉PStruts请求的Action类型即可实现业务逻辑的执行,这是PStruts中最简单的使用方法,
但使用这种方法请求Action,功能受到很大的限制,适合简单的不变化的业务逻辑。

第二个方法使用String类型参数,传入的参数是Action的配置名。这个方法需要使用配置文件,

在上一章静煊架构,认识PStruts的配置文件中已经介绍了配置文件的具体内容。

当页面发出Action请求后,Action将自动把表单数据使用Get/Set方法注入到同名的属性中,如果表单数据量比较多,

建议使用额外的form实体类保存表单数据,使实体类和业务逻辑类相分开。执行完业务逻辑后,

PStrutsAction的所有属性封装在ValueTable中,并通过PageItems属性返回到方法调用的页面。

在页面中通过以下代码

ValueTable  valueTable=Page.Items[“ValueTable”]  as  ValueTable;

 

获取,表单数据验证的错误信息则保存在ValuteTableErrorTable中,获取方法如下:

 

ErrorTable errorTable=valueTable[“ErrorTable”];

 

  ValueTableErrorTable分别继承自Dictionary<string,object>Dictionary<string,string>,所 以它包含了基类的所有方法。

虽然Action不需要实现任何方法或继承任何类,但是继承Pride.PStruts.Support.ActionSupport能为我们更方便的实现Action

ActionSupport封装了一些常用的方法和属性,还能实现表单数据验证。坠子我们熟悉的RequestResponseSession这几个对象外,

还有ValueTableHasErrors属性。HasErrors属性指示表单数据是否存在验证错误,通过ValueTable属性,

能便捷地把数据封装到ValueTable中并返回到调用页面而不需要设置额外的属性。

ActionSupport还提供了一些方便的读取国际化信息的方法:

String GetString(string key);

 


搜索App_GlobalResources文件夹下的所有资源文件,返回匹配key的第一个本地化资源信息。

String GetString(string key, string resourceName);

搜索App_GlobalResources文件夹下指定资源文件名的资源,返回匹配的本地化资源信息。

string GetString(string key, Type resourcetype);

  搜索App_GlobalResources文件夹下指定资源文件类型的资源,返回匹配的本地化资源信息。

PStrutsAction就简单地介绍到这里,我也知道我的写作水准是够菜的了,心有余而力不足,还请各位读者朋友不要见笑。

发文章格式总是变乱,不知道是什么原因,希望能解决。

posted on 2008-10-31 19:36  真的骄傲  阅读(1302)  评论(4编辑  收藏  举报