J2EE进阶(十一)SSH框架整合常见问题汇总(二)

J2EE进阶(十一)SSH框架整合常见问题汇总(二)

问题8

      java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean

     解决

      数据库中userdetail表的映射文件如下,可见xb字段数据类型为boolean类型,而自己在userdetail模型类中定义的类型为String类型。为此可以得出这样的结论。模型类中的数据及类型必须与数据表映射文件中的字段信息保持一致。应该可以同时生成pojo类和映射文件,只是自己当时进行项目设置时没有进行相应的设置,从而招致后期错误的不断出现。

 

问题9

      org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of cn.edu.ujn.model.User.orderses

     解决

     初步怀疑是数据表映射文件出的问题。User.hbm.xml文件存在以下内容:

  

      <set name="orderses" inverse="true">
            <key>
                <column name="userid" />
            </key>
            <one-to-many class="cn.edu.ujn.model.Orders" />
    </set>

      通过参考课本,得知Set集合属性需要使用<Set.../>元素进行映射,使用<key.../>元素映射外键列,用于保证持久化类和集合属性的关联。Hibernate映射Set集合属性时应指定映射表名,即以上代码应更改为

        <set name="orderses" table="orders" inverse="true">
            <key>
            	<!-- 指定外键字段的列名 -->
                <column name="userid" />
            </key>
            <one-to-many class="cn.edu.ujn.model.Orders" />
   </set>

      从以上定义可知,变量orserses应为Set集合数据类型,应定义为private Set<String> orderses = new HashSet<String>();同时设置其getset方法。而自己之前将其定义为了String类型,导致get时发现数据类型不一致而报错。

      经过以上更改,当用户输入正确的用户名与密码时即可登录到正确的页面。

问题10

      明明在jsp文件内调用了js方法,但是始终没有效果。

      解决

      经过调试直接在js文件内执行alert("测试");弹出窗口,而Window.alert("测试");却没有弹出窗口,经过网上一番搜索,也没有找出合理的解释。将弹窗改为alert();之后,问题得以解决。

问题11

      jsp页面中存在语句:<s:property value="#request.msg"/>,其中request为action中所定义的变量。

      Map request = (Map) ActionContext.getContext().get("request");

       request.put("request", "旧密码错误,请重新输入");

      但是当自己的旧密码输错时,错误提示总是不会显示。

      解决

      再次对照视频发现原来是自己将代码敲错了,o(︶︿︶)o 唉,不知为不过啊!其实之前自己就看着代码不对劲。正确代码如下:

Map request = (Map) ActionContext.getContext().get("request");
request.put("msg", "旧密码错误,请重新输入");

问题12

      在设置分页操作时,总是会出现不能正确显示现象。如下图所示:

 

      Jsp页面代码如下:

  	<s:iterator value="#request.catalogs" id="catalog">
  	<a href=#>

      解决

      再次对照视频,也没有发现有什么纰漏的地方。而且地址栏显示为

      http://localhost:8088/flowerGift/browseFlowerPagingAction.action?catalogid=3¤tpage=1,但是console控制台显示page.currentPage:2这就令自己很是费解了。明明设置的是从第一页开始显示的,为何就不见效果呢?

      通过仔细观察代码发现,原来变量currentPage错写为了currentpage一字之差啊。这里的currentPage本是Page类中的成员变量。当初自己太粗心了,导致后期检查错误特别吃力。O(︶︿︶)o 唉,自己挖的坑还得坑自己啊,到头来还得自己填坑。

  	<s:iterator value="#request.catalogs" id="catalog">
  	<a href=#>	</s:iterator>
 

问题13

      在进行订单提交操作时,出现了一下错误提示:

 


 

      解决

      初步判定是由model中变量类型与数据表映射文件中的数据类型不一致造成的。这个问题与问题5和问题9比较相似。经过查找,发现OrderItem中的flowerid为int类型,而与Flower中的flowerid数据类型Integer不同,更改之后,问题得以解决。有关Integer与int数据类型的区别,详见注4。

问题14

      提交订单操作时,发现jkxyshsflower.orders表数据写入没有问题,但是与订单相关联的jkxyshsflower.orderitem表中flowerid的值却没有写入,此问题与问题6颇为相似,均涉及到了表的级联操作问题。问题6迄今尚未得到解决。其中orders数据表的映射文件内容如下:

 

其中,在映射set集合时,配置项如上图所示。注意其中使用了级联属性cascade=“all”。视频中的数据写入没有任何问题,但是自己实践时却出现了无法写入的情况。

 

jkxyshsflower.orders表

 

jkxyshsflower.orderitem表

   解决

     经过查看程序,发现果然还是映射文件配置错误出现的问题,最好的方法就是利用Hibernate的反向工程功能,自动生成数据表对应model类及映射配置文件。具体方法参见博文《J2EE进阶(七)利用SSH框架根据数据表建立model类》。这样问题6同样得到解决。

 

jkxyshsflower.orders表

 

jkxyshsflower.orderitem表

问题15

     在挂失解挂用户时,出现了如下错误提示:

 


 

     解决

     manageUser.jsp部分代码如下:

 

     哪哪都是戏,不知怎么的,程序突然又可以了。及时重启服务、清缓存是常做的工作。

美文美图



本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
背景: 为了方便整体产品的发布,希望通过docker实现增量发布。大致的思路如下: is-there-a-way-to-add-only-changed-files-to-a-docker-image-as-a-new-layer-with 。本博文对这种方式进行了尝试,与此同时简单介绍如何通过Dockerfile来创建Docker镜像。 前期准备: 解决centos的网络问题 【can not find a valid baseurl for repo: base/7/x86_64】 ,使用dhclie

pcap文件的python解析实例 - 2016-07-24 19:07:52

最近一直在分析数据包。 同时也一直想学python。 凑一块儿了...于是,便开工了。座椅爆炸! 正文 首先要说的是,我知道python有很多解析pcap文件的库,这里不使用它们的原因是为了理解pcap文件的格式细节。使用tcpdump你可以很容易抓取到一系列的数据包,然而tcpdump并没有分析数据包的功能,如果想从这个抓包文件中分析出一些端倪,比如重传情况,你必须使用wireshark之类的软件,用wireshark打开tcpdump抓取的pcap文件,如果你看到了一堆堆的深红色(类似静脉血管里流出的猪

CPU和内存监测 - 2016-07-24 19:07:07

CPU和内存监测 vmstat命令的VM模式 vmstat可以监测给定时间间隔的服务器的状态值,包括CPU的使用率,内存的使用,虚拟内存的交换情况,IO读写情况。 主要从/proc/meminfo,/proc/stat和/proc/*/stat中获取数据 常用手段vmstat [采样的时间间隔秒数] [采样的次数],举例如下: [root@dtbase-master- 2 /root] #vmstat 5 10 procs -----------memory---------- ---swap-- ---
正文 为了弥补pcap文件的缺陷,让抓包文件可以容纳更多的信息,pcapng格式应运而生。关于它的介绍详见《 PCAP Next Generation Dump File Format 》         当前的wireshark/tshark抓取的包默认都被保存为pcapng格式。         形而上的论述就不多谈了,直接给出一个pcapng数据包文件的例子: 然后我强烈建议,对着《 PCAP Next Generation Dump File Format 》来把一个实际抓取的pcapng文件里面
PS:历史原因作者账号名为:ymh198816,但事实上作者的生日并不是1988年1月6日 今天作者要在这里通过一个简单的电商网站订单实时分析系统和大家一起梳理一下大数据环境下的实时分析系统的架构模型。当然这个架构模型只是实时分析技术的一 个简单的入门级架构,实际生产环境中的大数据实时分析技术还涉及到很多细节的处理, 比如使用Storm的ACK机制保证数据都能被正确处理, 集群的高可用架构, 消费数据时如何处理重复数据或者丢失数据等问题,根据不同的业务场景,对数据的可靠性要求以及系统的复杂度的要求也会不同
一 协议端口 如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。 在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个
MyBatis真正的强大,在于其映射语句的魔力。 SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): (1)cache  给定命名空间的配置缓存。 (2)cache-ref  其他命名空间缓存配置的引用。 (3)resultMap  是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象 (4)sql 可被其他语句引用的可重用语句块。 (5)insert 映射插入语句 (6)update  映射更新语句 (7)delete   映射删除语句 (8)select   映射查询语句
1、Maven构建Spring Boot 创建Maven Web工程,引入spring-boot-starter-parent依赖 project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/m

平衡搜索树之AVLTree - 2016-07-24 14:07:56

今天我想要在这里写下个人觉得比较难的数据结构---AVL树的一些些心得。 一。了解一种新的数据结构,首先要搞懂它的定义 : AVL树又称为高度平衡的二叉搜索树,是1962年有俄罗斯的数学家G.M.Adel'son-Vel'skii和E.M.Landis提出来的。它能保持二叉树的高度 平衡,尽量降低二叉树的高度,减少树的平均搜索长度。所以严格点来说,对于一棵搜索二叉树,能达到O(logn)的只是AVL树,因为他对于二叉树的深度控制的最为严格 ,那么这是为什么呢?让我们来看看 AVL树的性质 : 左子树和右子

linux基础知识 - 2016-07-24 14:07:48

1:基本知识 微内核:是一种提供必要服务的操作系统内核,大部分内核都作为单独的进程在特权模式先运行,他们通过消息传递进行通讯 单内核:单内核是个很大的进程,他的内部又悲愤为若干个模块,是个单独的二进制但印象,其模块间的通讯是通过直接调用其他模块中的函数实现的,而不是消息传递。 linux分几种应用程序级别 Ring 0 特权模式 一般是系统底层运行级别 Ring3 应用程序级别 一般的级别 有时候应用进程为了调用系统底层的模块,可能会在用户空间和内核空间之间进行来回的切换,这是很耗时间的,平时工作中应注意