节点下可以有多个映射关系存在,目前我们只定义了一个。LoginAction定义这里定义了逻辑处理单元LoginAction的具体实现,这里,LoginAction的实现 类为org.nacl.action.LoginAction。
LoginAction的请求数据对象commandClass参数源于LoginAction的基类BaseCommandController,BaseCommandControlle包含了请求数据封装和验证方法
(BaseCommandController.bindAndValidate),它将根据传入的HttpServletRequest构造请求数据对象。这里我们指定commandClass为org.nacl.action.LoginInfo,这是一个非常普通的Java Bean,它封装了登录请求所需的数据内容:
Spring会根据LoginAction的commandClass定义自动加载对应的LoginInfo实例。之后,对Http 请求中的参数进行遍历,并查找LoginInfo对象中是否存在与之同名的属性,如果找到,则将此参数值复制到LoginInfo对象的同名属性中.请求数据转换完成之后,我们得到了一个封装了所有请求参数的Java 对象,并将此对象作为输入参数传递给LoginAction。
返回视图定义
对于这里的LoginAction而言,有两种返回结果,即登录失败时返回错误界面,登录成功时进入系统主界面。对应我们配置了fail_view、success_view两个自定义参数。参数值将由Resolver进行处理,为其加上前缀后缀,如对于fail_view而言,实际的视图路径为/WEB-INF/view/loginfail.jsp。之后,Resolver 会将LoginAction的返回数据与视图相融合,返回最终的显示界面
业务逻辑处理单元:LoginAction.java
仅供大家交流学习如有问题联系mail:wick.huang@hotmail.com
Spring MVC
onSubmit方法
我们在子类中覆盖了父类的onSubmit方法;而onSubmit方法用于处理业务请求。负责数据封装和请求分发的Dispatcher,将对传入的HttpServletRequest进行封装,形成请求数据对象,之后根据配置文件,调用对应业务逻辑类的入口方法(这里就是LoginAction)的onSubmit()方法,并将请求数据对象及其他相关资源引用传入。
onSubmit方法包含了两个参数:Object cmd和BindException ex。前面曾经多次提到请求数据对象,仅供大家交流学习如有问题联系mail:wick.huang@hotmail.com
Spring MVC
这个名为cmd的Object型参数,正是传入的请求数据对象的引用。BindException ex参数则提供了数据绑定错误的跟踪机制。它作为错误描述工具,用于向上层反馈错误信息。在Spring MVC中,BindException将被向上层表现层反馈,以便在表现层统一处理异常情况(如显示对应的错误提示)
返回处理结果
ModelAndView类包含了逻辑单元返回的结果数据集和表现层信息。ModelAndView本身起到关系保存的作用。它将被传递给Dispatcher,由Dispatcher 根据其中保存的结果数据集和表现层设定合成最后的界面。
最后来看看返回界面main.jsp:
代码如下:
仅供大家交流学习如有问题联系mail:wick.huang@hotmail.com
Spring MVC
工程的总体目录结构如下
仅供大家交流学习如有问题联系mail:wick.huang@hotmail.com
Spring MVC
至此,就可以部署在应用服务器上运行了
仅供大家交流学习如有问题联系mail:wick.huang@hotmail.com