Struts2整合ExtJS.docx
文本预览下载声明
2009-05-14 17:41首先,自我表扬一哈,经过几个晚上的努力,终于研究出来了Struts2整合ExtJS,感觉Struts2进化了好多,写起来方便多了,虽然现在在Eclipse上面没有很好的插件,但是感觉开发周期还是缩短了不少,Action的配置只是粘贴复制的功夫,所以插件现在对我来说起不到蛮大的作用,长话短说,开始步入正题。 我这里做的是一个Login的Demo,虽然功能简单,但是Struts2大致的工作流程是一样的,我用的Struts2是最新版的,版本号为2.1.6,ExtJS版本号为3.0,界面好看些。这里我的工程目录,如图: 新版本的Struts2的commons-fileupload-1.2.1.jar包要加上,不然会抛Unable to load configuration. - bean的一个异常,登录窗口如图:怎么用ExtJS画页面就不说了,网上到处都是,这里只说下Action的配置,首先要配置web.xml,所有的提交是先提交到Struts2的拦截器。web.xml:然后要配置struts.xml,他是将从Struts2拦截器中的Action分配到每个Action类,但是这里我不是这样写的,我的struts.xml也只是做一些分配的事情,例如,我这里的登录是对于User的操作,所以我这还会建一个user.xml文件,将struts.xml从拦截器中得到的Action分配给user.xml,struts.xml:struts.xml包含user.xml,user.xml配置:package标签下的namespace属性我这里主要用来区分页面上面url地址,如图:url后面的user就是我的命名空间,前面配置都很简单,后面Action的建立,我分了两步,第一步配置的是一个基本的Action,我跟它取名叫BaseAction,它需要继承Struts2的ActionSupport,这个类里面我除了配置简单的request和response外,我还做了一个封装JSON的方法,方便以后Action直接调用outJson这个方法就可以把某一个对象转换成JSON传到前台。方法如图:第二步就是配置一个结果集,这个结果应该可以满足ExtJS,如图:这个类的get和set方法这里就不写了,反正Eclipse都可以帮我们自动生成,它其实就是个简单的JavaBean。 最后就是写我们的Action了,我跟它取名叫UserAction,它继承BaseAction,那么他就可以使用BaseAction所有的方法其实这个Action也很简单,获取前台传过来的uname和upwd,看两个变量是否等于1,如果等于,就调用结果集的setSuccess方法,将字符串true传入进去,否则就将字符串false传入进去,然后调用BaseAction的outJson方法,将结果集转换成JSON对象的字符串传到前台。 前台得到结果,如果结果是true,则提示登陆成功,如果结果是false,则提示登录失败,如图: 这个提示框是ExtJS3.0的一个小bug,与某些浏览器不兼容,可能在以后的版本中会改进。
显示全部