SSH常见问题

SSH框架常见问题汇总

 

重新启动Tomcat后web-inf/classes/下的配置文件没有更新

 

Struts2常见问题汇总

1. There is no Action mapped for namespace / and actionname admin_login.

解:mlgb,浪费我半天时间,问题:没有找到该Action的映射,即该Action不存在,大家都知道myeclipse中的项目都要经过编译然后全部复制到服务器上,我的问题是由于struts的配置文件没有更新造成的,先来说说我的问题,我第一次配置了action之后(此时的action配置是有问题的)第一次启动服务器,结果tomcat就将第一次的项目文件部署到服务器,也包括struts.xml(文件位置为:E:\ApacheSoftware Foundation\Tomcat 8.5\webapps\employee_ssh\WEB-INF\classes),在web-inf/classes目录下,然后后台我更改项目文件后重新启动了好几次服务器,奇怪的是服务器下的struts.xml文件居然没有更新。。。。然后我直接手动复制替换掉服务器下的struts.xml,结果重新启动,程序正常执行。

 

 

Hibernate(6.1)常见问题汇总

1.关于*.hbm.xml文件的自动生成

Hibernate类文件可以不使用*.hbm.xml 文件映射表结构,而使用注解映射表结构(简单,高效)需指定@Entity 和 @Id,但如果是很多类文件的时候(我们不可能直接写很多类文件,因为他们之间有很多关系),这时我们就需要先创建数据库表,然后用myeclipse自动为我们生成hibernate类文件与*.hbm.xml表结构映射文件

 

 

2.Queryquery 中不能使用占位符的方法动态赋值

query.setString(0,admin.getUname());

query.setString(1,admin.getPassword());

 

 

3.有关一对多或者多对多关系的延迟加载引发的异常(数据未被加载)

该异常引发的原因时同城操作数据的代码编写在DAO层和Biz层但是这两层并不负责数据的展示而我们在jsp页面中对数据进行展示时Session早已关闭并且有与延迟加载的关系数据并没有加载到对象中,当jsp页面去访问对象属性时Hibernate尝试使用Session对象去和数据库交互时发现并没有可用的Session对象从而引发该异常。

对于此类问题通常的做法是利用过滤器(Filter)将Session对象存放在表示层。Spring为我们提供了OpenSessionInViewFilter过滤器:表示让session在视图层开启

 

4.struts2标签在jsp中获取model各属性的值

除了s:date和s:property 中不用写%{model.property },其他标签都要写

如:"ename" value="%{model.ename}"/>

Spring常见问题汇总

1. hibernate4.support.OpenSessionInViewFilter没有效果

 

将hibernate4.support.OpenSessionInViewFilter的过滤器放在struts的前面即可解决问题,原因不详,应该跟过滤器的执行顺序有关

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Java)