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集合属性需要使用<Set.../>元素进行映射,使用<key.../>元素映射外键列,用于保证持久化类和集合属性的关联。Hibernate映射Set集合属性时应指定映射表名,即以上代码应更改为
从以上定义可知,变量orserses应为Set集合数据类型,应定义为private Set<String> orderses = new HashSet<String>();同时设置其get、set方法。而自己之前将其定义为了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 唉,不知为不过啊!其实之前自己就看着代码不对劲。正确代码如下:
Jsp页面代码如下:
解决
再次对照视频,也没有发现有什么纰漏的地方。而且地址栏显示为
通过仔细观察代码发现,原来变量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> </s:iterator>
- 点赞
- 收藏
- 关注作者
评论(0)