使用struts2.0.9+spring+hibernate+ajax
很简单的一个测试例子,即简单的CRUD例子。当我没有采用theme="ajax" validate="true"验证表单数据时,提交表单,若数据合法则页面自动跳转到数据列表页面。可是当我使用ajax客户端验证时,验证能正常运行,可是当输入的数据都合法后,点击“提交”时,页面一点反应都没有,但查看数据库发现数据已经保存了。仅仅是页面不跳转。
我自己有一个疑问,就是我查看表单编辑页面的HTML代码,发觉在我引用<s:head theme="ajax"/>处导入了很多DOJO的JS库,其JS文件在我的项目下并不存在。HTML代码部分如下:
- HTML code
<script type="text/javascript"> // Dojo configuration djConfig = { baseRelativePath: "/Struts2_Ioc/struts/dojo", isDebug: false, bindEncoding: "GBK", debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes };</script><script type="text/javascript" src="/Struts2_Ioc/struts/dojo/dojo.js"></script><script type="text/javascript" src="/Struts2_Ioc/struts/simple/dojoRequire.js"></script><script type="text/javascript" src="/Struts2_Ioc/struts/ajax/dojoRequire.js"></script><script type="text/javascript" src="/Struts2_Ioc/struts/CommonFunctions.js"></script>
注:我的项目上下文为Struts2_Ioc,但是项目底下并没有/struts/目录,也没有/struts/dojo/等目录,这些DOJO的JS库我也不知道该如何导入。
现在问题如下:这些JS库缺失是否就是问题所在?如果是,我该如何导入(我查看了DOJO的官方网站并下载了好几个版本的DOJO发现其目录文件结构都跟这个HTML文件里面的JS库文件结构不一致)?
同时是否跟struts.xml文件有关系?我把部分代码贴出来:
- XML code
<action name="List" class="bookAction" method="list"> <result>List.jsp</result> </action> <action name="Edit" class="bookAction" method="load"> <result>Edit.jsp</result> </action> <action name="Store" class="bookAction" method="store"> <result name="input">Edit.jsp</result> <result type="redirect">List.action</result> </action> <action name="Remove" class="bookAction" method="remove"> <result type="redirect">List.action</result> </action>
注:其中class我使用了spring配置文件applicationContext.xml里面定义的ID,这些配置应该没有问题,唯一我有疑虑的是:是否由于页面有错误输出,所以在
- XML code
<action name="Store" class="bookAction" method="store"> <result name="input">Edit.jsp</result> <result type="redirect">List.action</result> </action>
这里面redirect是有错误的呢?可是我把它换成name="success"也一样是不行的。
我是个新手,请您帮帮我,谢谢!
------解决方案--------------------
注:我的项目上下文为Struts2_Ioc,但是项目底下并没有/struts/目录,也没有/struts/dojo/等目录,这些DOJO的JS库我也不知道该如何导入。
===========================================
这些东西在struts2引入的包里, 不需要专门引入
------解决方案--------------------
第一,你最好看完文档再提问!
Struts2的js是通过jar包的静态文件输出完成的,不需要你的项目目录下有/struts2目录,这个你可以在default.properties中的struts.serve.static=true中设置!
第二,如果页面无反应,但却提交了,说明你开启了Ajax提交,Struts2的ajax表单不仅可以使用DWR1.x版本进行Ajax校验,也可以进行无刷新提交!由于你的JSP的表单代码没有写上来,我无法判断你是哪里写错了!
------解决方案--------------------
楼主,能说说怎么解决吗?我还没解决那!我也碰到类似的问题!