ExtJS+SpringMVC+Spring+Hibernate的一种实现(蒋锋代码分析)

  • 时间:
  • 浏览:2
  • 来源:5分排列3APP下载_5分排列3APP官方

上述代码是js语言环境下法子 的定义,我们都都在login.js中调用了某种 法子

最终在里面代码中调用EU.RS()法子 ,某种 法子 定义在原来js文件中如下图:



没有上述代码究竟起哪些地方作用呢?

我们都都直接去看ExtUtils.js文件的次责代码,也很多很多我RS()法子 的代码:

上述代码用于现实红框中的内容,重点在于listeners中的click事件,某种 事件定义在哪里呢?



ExtJS的规范是原来的,MVVC,如下图



controller次责表示某种 js页面的事件相关的controller,很多很多我下面某种 文件



没有可必须看出来事件定义在LoginController.js某种 文件中,我们都都看看onLoginButton对应的代码:

http://my.oschina.net/lichhao/blog/172562

上述代码很多很多我Spring中Controller次责的java代码

返回时候的工作,由SpringMVC的ViewResolver来做,也很多很多我由框架来做,定位到对应的jsp页面,把数据暴露给它。

并且我们都都去jsp页面看看

今天时候我写的java环境下web应用是是不是某种 形式:

1--被委托人写的@Controller中的handler法子 采用Spring+Hibernate的法子 读取数据,读取到我们都都自定义的PO中(从硬盘读取到内存中)。

2--并且采用SpringMVC的ModelAndView的法子 addObject()将得到的PO是因为PO的List放在去ModelAndView的实例中。

3--并且handler法子 中setViewName(),return。要花费返回string是因为4--ModelAndView给SpringMVC,也很多很多我交给指定的jsp页面以数据。

并且在对应的jsp页面中使用jstl的标签读取返回的数据,并将数据交给html中的标签来显示。

上述过程对应的代码如下:

首先,被委托人写的Controller代码,指在对应的web文件夹中

上述过程全版的表达了,时候我采用Spring+SpringMVC进行读数据库--返回给jsp---由jsp显示数据的过程。

并且,太土了。

是因为另一一俩个:

1--显示页面,很多很多我纯粹的JSP页面原来很土,工作量也很大。我们都都要用的是高端大气的ExtJS很多很多,你的写法肯定不行。

2--某种 写法实际上没有理解SpringMVC的前提下,某种 十分粗略的写法。

看多蒋锋老师的代码,认真学习了SpringMVC的教材,我发现,得改,下面是蒋锋老师写的代码。先给阿托老师打个call吧某种 网址:http://www.jhopesoft.com/ 可必须看多他的项目、源码以及实例运行demo

quick-build-opensource项目采用ExtJS+Spring+SpringMVC+Hibernate实现

我们都都来看一下最基本的另一一俩个场景:login登录

说句题外话:真是正确的代码分析过程应该是导入svn并且运行,并且在eclipse中对照代码修改看效果,并且我还没有成功导入,很多很多就断片得看代码了(利用官网demo和下载来的war文件中的源码,实际二者本应该联动,并且某种 形式分析代码是无法联动的)。



登录页面如上图所示,下面我们都都来看的是,从显示某种 页面,到输入用户名密码点击登录按钮,并且到与数据库交互验证数据的整个过程涉及到的代码。

上图显示的页面看似html实际是采用ExtJS绘制的,ExtJS自成体系,编写完代码时候都上后能 使用Sencha编译一下,并且生成累似 于下面的目录行态:



实际上在eclipse中最终项目的目录行态如下所示



最初访问项目的页面是index.html



如上图所示,是index.html的代码,真是也真的看没了哪些地方来。并且是因为你学习过ExtJS的基础知识,你就不要看不懂了,是因为ExtJS的行态是固定的,简单地说很多很多我app.js是所有一切的入口,很多很多我们都都直接去看app.js(从里面的目录行态的照片中,真是可必须找到app.js)



核心代码导入app.view.Main代码,某种 说法比较粗略,法子 ExtJS的基础知识,目录行态也是固定的,默认是是不是在app目录下。







某种 login.js文件很多很多我现实整个页面的最主要的文件

我们都都看看其中的有关登录按钮的代码:

并且就可必须

另外另一一俩个参考文档如下:

http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-convert.html

var callback = function(type, scope, success, result, response, options) {}某种 形式的js代码实际上定义另一一俩个变量,某种 变量的名字是callback,变量的内容是另一一俩个function,js的神奇之处。

先定义callback法子 ,并且里面代码中再调用某种 法子 。

下图是Ext.callback某种 标准法子 的说明



上述代码有三次责内容:

1---完善config某种 参数(定义了另一一俩个callback法子 )

2---判断crossdomain,并且从新定义LoginController中callback法子

3---执行ExtJS标准法子 Ext.Ajax.request();

第三次责才是实际执行



某种 标准法子 的含义也很简单,很多很多我向url中发送另一一俩个request

url定义在config里,时候是因为定义过了。

1和2的工作真是是是不是在动态的定义另一一俩个自定义callback法子 (注意,是自定义的callback并且我否ExtJS系统标准callback)

也很多很多我回到LoginController.js文件中

在Login.js文件中“登录”按钮触发的事件,很简单,核心很多很多我触发ExtJS标准的Ext.Ajax.request()法子 ,也很多很多我向url发送另一一俩个request。

url是哪些地方?正确处理你眼瞎,我把代码再贴一遍:

好吧,接下来会指在哪些地方呢?

接下来的事情就和ExtJS无关了,是因为你发送了另一一俩个request。某种 request会被tomcat中web项目里配置的SpringMVC拦截下来,哈哈哈,看着眼熟了吧?

法子 url,SpringMVC中你被委托人手写的Controller次责的java文件就会起作用了。

"login/validate.do"

某种 url真是就直接,(当然我也是去eclipse工程中慢慢瞪眼睛看出来的)如下图被委托人看吧:



上述url经过controller的定位,也很多很多我SpringMVC中HandlerMapping次责的定位,找到某种 java文件进行正确处理,下面的工作就很多很多交给了SpringMVC和Spring。

上图所示的代码,也很多很多我Spring中Controller的代码我们都都来列举一下:

1--案例代码从数据库获取数据的过程:

某种 次责是经典的Spring写法,controller目录中保存SpringMVC的java代码,service目录保存业务逻辑代码,下图基本反映了java次责所有的代码:



看多Dao次责只另另一一俩个java文件(另一一俩个interface另一一俩个class)

Entity文件夹中是是不是PO文件,由eclipse集成的Hiberante Tools生成

哇这很多很多我java代码。某种 次责在前面博文蕴含所介绍。

上述代码和过去我被委托人写的Spring中的Controller的java代码区别就在于返回值,他的java代码中没有出现ModelAndView,按照web--service--Dao某种 目录行态的代码,返回值类型是另一一俩个自定义的PO。过去我们都都是将PO放在去ModelAndView中,并且跳转到JSP页面中再获取其中的数据。现在是是不是原来了,没有某种 写法究竟哪些地方意思呢?

涉及到两次责内容:

1---Spring代码如可获取数据库中数据的;

2---返回的PO如可被解析的;

2--返回值PO如可被解析

蒋锋老师代码中是某种 意思,我还没有验证啊:PO类型的返回值实际上是另一一俩个PO的实例,里面存放着数据。返回给SpringMVC时候,由SpringMVC解析成json文件,返回给某种 法子 的调用者,也很多很多我最开始的login.js文件中的,返回法子 ,也很多很多我callback法子 。如下图所示:



没有json文件是哪些地方行态呢?一堆括号,一堆冒号,一堆字符串。



我们都都现在关心的问题 是,PO如可被解析成json文件的。

看下面的博文:

http://blog.csdn.net/fw0124/article/details/48260 083?spm=5176.60 239.blogcont291249.11.FqLHtx歌词大意很多很多我,通过maven导入依赖