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集合数据类型,应定义为

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", "旧密码错误,请重新输入");

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

Jsp页面代码如下:

  	<s:iterator value="#request.catalogs" id="catalog">
  	<a href="browseFlowerPagingAction.action?catalogid=<s:property value="#catalog.catalogid"/>¤tPage=1" target="_self"><s:property value="#catalog.catalogname"/> </a>
  	<br><br>
        </s:iterator>

      解决

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

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="browseFlowerPagingAction.action?catalogid=<s:property value="#catalog.catalogid"/>currentPage=1" target="_self"><s:property value="#catalog.catalogname"/> </a>
  	<br><br>
	</s:iterator>

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

     解决

manageUser.jsp部分代码如下:

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

美文美图



J2EE进阶(十一)SSH框架整合常见问题汇总(二)的更多相关文章

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

    SSH框架整合常见问题汇总(一) 前言 以下所列问题具有针对性,但是遇到同类型问题时均可按照此思路进行解决. HTTP Status 404 - No result defined for actio ...

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

    在挂失用户时,发现userid值为空,但是在前台输入处理账号22时,通过后台输出可以看出,后台根据前端输入在数据库中查询到结果对象并输出该对象的userid,而且Guashi对象也获取到了其值. 解决 ...

  3. J2EE进阶(六)SSH框架工作流程项目整合实例讲解

    J2EE进阶(六)SSH框架工作流程项目整合实例讲解 请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程. 首先查看一下客户端的请求信息: 对于一个Web项 ...

  4. SSH框架整合

    SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...

  5. dwr与ssh框架整合教程

    (1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开 发人员开发包含AJ ...

  6. ssh框架整合之登录以及增删改查

    1.首先阐述一下我用得开发工具,myeclipse2017+oracle,所以我的基本配置步骤可能不一样,下面我用几张图来详解我的开发步骤. ---1先配置structs (Target 选择apac ...

  7. Spring+Hibernate+Struts(SSH)框架整合

    SSH框架整合 前言:有人说,现在还是流行主流框架,SSM都出来很久了,更不要说SSH.我不以为然.现在许多公司所用的老项目还是ssh,如果改成流行框架,需要成本.比如金融IT这一块,数据库dao层还 ...

  8. MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    MVC+Spring.NET+NHibernate .NET SSH框架整合   在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...

  9. SSH框架整合的其它方式

    --------------------siwuxie095 SSH 框架整合的其它方式 1.主要是整合 Spring 框架和 Hibernate 框架时,可以不写 Hibernate 核心配置文件: ...

随机推荐

  1. github常用命令

    全局配置 git config --global user.name "lewiscutey"git config --global user.email "lewisc ...

  2. CentOS7.4 源码安装MySQL8.0

    MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...

  3. centos7安装nginx必要环境

    安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行 , 在安装nginx前还要安装以下的环境包 一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc ...

  4. vue loadMore 上拉刷新不能实现的坑

    1.如果你写的代码没问题,但依然不能实现上拉刷新效果,那你有可能是缺少了overflow: scroll 2.如果上拉刷新一直在加载状态,需要调用this.$refs.loadmore.onBotto ...

  5. linux办公软件的使用和病毒防范

    今天看了linux办公软件的使用和病毒防范,特做此记录,将不熟悉的内容总结一下: openoffice 和liberoffice是可以跨平台的两款办公软件.odt是openoffice的扩展名.lib ...

  6. C语言中#define的用法

    今天整理了一些#define的用法,与大家共享! 1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i& ...

  7. JVM回收方法区内存

    很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集,而且在方法区进行垃圾收集的“性价比”一般比较低:在堆中,尤其是 ...

  8. java new 关键字到底做了什么?

    一.关键字new概述 "new"可以说是Java开发者最常用的关键字,我们使用new创建对象,使用new并通过类加载器来实例化任何我们需要的东西,但你是否深入了解过new在编译的瞬 ...

  9. WPF ListBox/ListView/DataGrid 虚拟化时的滚动方式

    ListBox的滚动方式 分为像素滚动和列表项滚动 通过ListBox的附加属性ScrollViewer.CanContentScroll来设置.因此ListBox的默认模板中,含有ScrollVie ...

  10. mysql 索引列为Null的走不走索引及null在统计时的问题

    要尽可能地把字段定义为 NOT NULL,即使应用程序无须保存 NULL(没有值),也有许多表包含了可空列(Nullable Column)这仅仅是因为它为默认选项.除非真的要保存 NULL,否则就把 ...