五子棋Web版的开发(二)--整合Spring4.3+hibernate4+Struts2.3
拖了这么久才把ssh框架给整合完毕,期间发现自己对SSH的知识真的是知之甚少。在整合期间遇到了无数的坑,我还是先把项目地址发一下吧
首先我遇到的第一个问题是 CreateQuery is not valid without active transaction 在网上搜索了一阵后发现我没有在Spring-config.xml文件里定义完整事务在文件中加入以下
<!--配置事务的传播特性-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 事务执行方式
REQUIRED:指定当前方法必需在事务环境中运行,
如果当前有事务环境就加入当前正在执行的事务环境,
如果当前没有事务,就新建一个事务。
这是默认值。
-->
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="import*" propagation="REQUIRED" />
<!--
指定当前方法以非事务方式执行操作,如果当前存在事务,就把当前事务挂起,等我以非事务的状态运行完,再继续原来的事务。
查询定义即可
read-only="true" 表示只读
-->
<tx:method name="*" propagation="NOT_SUPPORTED" read-only="true" />
</tx:attributes>
</tx:advice> <!-- 定义切面,在 * base.service.*ServiceImpl.*(..) 中执行有关的hibernate session的事务操作 -->
<aop:config>
<aop:pointcut id="serviceOperation" expression="execution(* base.service.*ServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
</aop:config>
但是发现tx:advice一直是红色的于是在xml文件的头部加入xmlns:tx="http://www.springframework.org/schema/tx”
之后运行工程,又报ClassNotFoundException:org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
同样是在网上搜索之后发现是少了一个名为aspectjweaver.jar的jar包加入之后就好了。
但是事情远远没有那么顺利。解决了这个问题之后立马又出现了下一个问题,后来又出现了CreateQuery is not valid without active transaction 这个错误,想必是之前并没有解决它。通过排除法之后发现Spring与hibernate整合需要注释掉<property name=“current_session_context_class”>thread</property>这句话。貌似加入这句后前后获取到的session就不是同一个。
随后又出现了model.User is not mapped [from model.User u where u.name ='null' and u.passwrod=‘null’] 起初我不明白为什么参数都是null,后来发现在ssh中由set,get方法自动注入时有两个需要注意的地方
1.在jsp 的form中需要注意input元素的name值必须要与action中成员变量名字相同,注意了是name值而不是id值
2.get,set方法自动生成时需要注意userName对应的get方法是getUserName(),只有这样才能识别自动注入
解决了这部分的问题之后,有出现了model.User is not mapped [from model.User u where u.name =‘xxx' and u.passwrod=‘123’]错误,即action已经获取到了tsp传过来的值但是没有匹配到对象。
后来我发现,数据库中的user表不知道什么时候被我改动过了,于是我又重新生成了一个User类以及User.hbm.xml。将dao类中的hql改为from User u where u.userName=“%s”and u.password=“%s"
终于完成了ssh的整合 从这里可以看出我对Spring hibernate Struts真的是一知半懂,真的得下功夫好好地看看框架知识了。。
格式有点乱 ,这个marsedit软件目前还是用的不太熟练。 太晚了 就睡了
五子棋Web版的开发(二)--整合Spring4.3+hibernate4+Struts2.3的更多相关文章
- 五子棋Web版的开发(一)---搭建IDEA SSH环境
最近公司都没啥事,我在完成了控制台版的本地五子棋后(github地址:https://github.com/lkq51/wuziqi_console2),想将他升级成为一个web版的五子棋游戏.因为公 ...
- 五子棋Web版的开发(三)
最近在这个上面花费的时间不多,进展不大,而且遇到了一个问题好久也没有解决..我将struct2 改为Spring MVC.但是ziRUL的自动映射却无法起作用. 一直不知道为什么会出现这个问题.. ...
- 石家庄地铁系统开发(java web版)(二)
两种方法: 一,自己写数据库,自己写算法实现 二,调用已有软件的API(百度,高德)
- 【Java Web开发学习】Spring4整合thymeleaf视图解析
[Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...
- Java Web高性能开发(二)
今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买 ...
- 几款web版整合(QQ、msn、icq、yahoo通、Gtalk等)即时聊天http://hi.baidu.com/ejie/blog/item/e89794ef9a9431efce1b3ebd.html
直到近期为止,我们经常使用的即时聊天工具(QQ.msn等)了Web版,大家不用下载庞大软件,直接打开网页就能够与自己的好友聊天,很方便.在此将时汇总,便于大家查找,节约大家一点时间. 此都是官 ...
- [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)
转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现W ...
- 开发Web版一对一远程直播教室只需30分钟 - 使用face2face网络教室
转载自:https://blog.csdn.net/wo_shi_ma_nong/article/details/88110111 在“为网站开发远程直播教室的折腾过程及最终实现”中,介绍了如何使用f ...
- 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》
<实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明 辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...
随机推荐
- Qt 设置对话框背景(使用调色板,设置它的画刷,画刷可以是图片)
http://blog.csdn.net/ei__nino/article/details/7305234
- JAVA中的break[标签]continue[标签]用法
原文:JAVA中的break[标签]continue[标签]用法 注意:JAVA中的标签必须放在循环之前,且中间不能有其他语句.例如:tag:for或while或do--while; 1.使用brea ...
- C语言入门(8)——形参与实参
对于带参数的函数,我们需要在函数定义中指明参数的个数和每个参数的类型,定义参数就像定义变量一样,需要为每个参数指明类型,并起一个符合标识符命名规则的名字.例如: #include <stdio. ...
- opennebula kvm attach disk
openNebula hotPlug disk or nic 网络检索关键字(Network search keywords) 208.117.233.122 virsh attach disk vi ...
- 《UML和模式应用》重点之思想篇
本书是帮助开发人员和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D.也不是方法,仅仅是图形表示法,假设没有真正掌握怎样创建优秀的面向对象设计,或者怎样评估和改进现 ...
- 许士彦:创业不走寻常路 APP最好时间已过
从用户体验服务设计公司eico design到拥有两千多万用户的独立微博客户端Weico,再到备受欢迎的影像APP(微可拍,Weico Gif),Weico团队走过了一条不寻常的创业之路. 作为一家新 ...
- android基础5——使用资源
Android会基于当前的硬件.设备和语言配置来为某个资源标识符选择最合适的值. 1.在代码中使用资源 使用静态类R来访问资源.R类是基于外部资源而生的类,并且是在项目编译的时候创建的.R的每一个子类 ...
- Ubuntu下用glade和GTK+开发C语言界面程序(三)——学习make的使用方法
makefile的规则 makefile的规则例如以下: target ... : prerequisites ... command ... ... target能够是一个object file(目 ...
- Response.Write具体介绍
问题一: Response.Write 后连接Response.Redirect ,则Response.Write无法显示,直接跳转入Response.Redirect 的页面. 解决方案: Resp ...
- k8s 集群基本概念
一.概述: kubernetes是google开源的容器集群管理系统,提供应用部署.维护.扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母) ...