主要是该怎么配置文件:
User.hbm.xml及具体对应的类?
applicationContext.xml的配置问题
2.jstl和el 怎么查询数据库中带外键的数据并“显示页面”
比如Student:
1.其中有teacherId要怎么显示页面teacherId;
2.其次又怎么显示teacherName
解决办法:如${student.teacherId}错误该写成${student.teacher.teacherId}就可以啦
3.我建的数据库的重大bug 在于:
就是在student_college视图中删除collegeName结局college就被删除啦,该怎么重新修改呢?
通过java代码控制readonly="readonly"
4.删除时遇见read-only="true"怎么办
org.springframework.dao.InvalidDataAccessApiUsageException:
Write operations are not allowed in read-only mode (FlushMode.MANUAL):
Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
配置文件出错:
<!-- 哪些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allServiceMethod" expression="execution(* service.*.*.*(..))" />
<!-- <aop:advisor pointcut-ref="allServiceMethod" advice-ref="txAdvice" /> -->
</aop:config>
应该改为:expression="execution(*com.gzdx.gzdxso.service.*.*.*(..))"
5.满加载异常
description The server encountered an internal error that prevented it from fulfilling this request.
解决办法:
出现满加载异常是因为:
java代码中出现啦死循环
6.数据库脏数据异常处理
数据库出现脏数据是因为对应数据外键数据不存在或者出现错误,应该好好修改
一.关于返工重新做“在线学习系统”遇见的问题
1.遇见的问题:
配置问题:
applicationContent.xml
“<bean>model.student.undefined 不能实例化” 总是报错:model.Student 不存在
解决办法
(1)找到相应的包:加上相应的包名:com.gzdx.gzdxso.model
(2)修改实体类User中与 User.hbm.xml中的数据一一对应;
(3)重新配置applicationContent.xml
2.配置总是不能被使用
原因:jar包冲突
3.<bean>adminService找不到
解决办法:以下所有皆是接口定义:
(1)首先在AdminAction中定义好private static IAdminService iAdminService = null;并给与set,get方法
(2)其次重新配置applicationContent.xml
(3)在测试包中查看问题产生的原因
<bean id="adminAction" class="com.gzdx.gzdxso.action.AdminAction" scope="prototype">
<property name="iAdminService" ref="iAdminService"/>
</bean>
<bean id="iAdminService" class="com.gzdx.gzdxso.service.AdminService">
<property name="adminDAO" ref="AdminDAO"/>
</bean>
4.Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
原因:由于id是自动增长的,并且更新是传啦id所以报错 将所有的
<generator class="increment"/>改为 <generator class="native"/>
5.basedao中的find()和load不能用需要重写
6.添加用户:add
public void add(T t) {
this.getHibernateTemplate().save(t);
}
7.删除用户:del
public void delete(int id) {
this.getHibernateTemplate().delete(this.load(id));
}
8.查找用户:load或get通过Id
public Admin findId(int id) {
Admin instance = (Admin)getHibernateTemplate().load(Admin.class, id);
System.out.println(instance);
return instance;
}
9.修改用户:
最初不能修改,详见4
public void update(T t) {
this.getHibernateTemplate().update(t);
}
10. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
/classes/struts.xml; lineNumber: 23; columnNumber: 1; XML 文档结构必须从头至尾包含在同一个实体内。
解决办法:1.jar包冲突
2.struts.xml版本版本不对 “重新写一个”
3.web.xml中错误 “重新写一个”
1.在jsp中添加
(1)common表
包括common.jsp .exception.jsp pub_add_success.jsp pub_del_success.jsp
pub_update_success.jsp
(2)script
public.jsp添加窗口添加,刷新..
(3)在需要的jsp中添加如下
<%@include file="../common/common.jsp" %>
错一天
<script language="javascript" src="yemian/script/public.js"></script>
2.此问题错误 href="#" 其中#找的是默认路经,修改过就可以啦
当热要在AdminAction中写对应的方法
public String todeleteSu(){
adminList = getiAdminService().list();
return "adminLists";
}
<a href="admin_todeleteSu" οnclick="del('admin_delById?adminId=${admin.id}')" >删除</a>
3.取不到Id 将name="id" 改为 name="adminId"
<td width="78%">
<input name="adminId" type="text" class="text1" id="userId"
size="10" maxlength="10" value="${a1.id}" >
</td>
或者
<a href="admin_delById?adminId=${admin.id}">删除</a>
然后在下添加
<c:choose>
<c:when test="${fromWhere eq 'admindelete' }">
<a href="admin_todeleteSucc">关闭窗口</a>
</c:when>
</c:choose>
3. lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 'beans' 的声明r的异常信息。
现象:Tomcat启动时,spring加载配置文件applicationContext.xml出错,抛出nested exception
is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1:
找不到元素 'beans' 的声明r的异常信息。
造成该异常原因:配置文件头部配置的xsd版本信息不正确,造成解析时出错。spring头部xsd或dtd校验文件的查找分两步,
第一先从本地jar包中找,如果找到则用本地jar包的进行校验(可以在spring-beans.jar或spring-context.jar
里的META-INF下的spring-schemas文件中找到xsd文件位置的定义),如果没有找到则进行第二步查找,它会尝试从网络
中下载该文件然后校验,如果系统断网或下载不下来,则会抛出上述异常.
解决办法 : 将applicationContext.xml中xsd文件定义的版本改为spring jar包中定义的xsd的版本,如果版
本定义的太高在本地会无法找到,只能从网络上下载。
4.Unable to instantiate Action, teacherAction, defined for 'teacher_findTeache
原因是在applicationContent.xml中没有配置在其中配置以下内容就行啦
<bean id="teacherAction" class="com.gzdx.gzdxso.action.TeacherAction" scope="prototype">
<property name="iTeacherService" ref="iTeacherService"/>
</bean>
<bean id="studentAction" class="com.gzdx.gzdxso.action.StudentAction" scope="prototype">
<property name="iStudentService" ref="iStudentService"/>
</bean>
5.遇见页面不能跳转
原因是少加啦
<%@include file="../common/common.jsp" %>
1.由于有外键的存在,添加不了数据
原因无法teacher.setCollege();
解决办法:College college = new College();
college.setcollegeId(id);
College.save(college);
teacher.setCollege(college);
2.java.lang.NoSuchMethodException
转化类型不同还有忘记跳转
# Struts OgnlUtil issues unimportant warnings
log4j.logger.com.opensymphony.xwork2.util.OgnlUtil=error
log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack=error
3. 错误原因:Teacher a1=iTeacherService.load(collegeId);
public String updateIn(){
Teacher a1=iTeacherService.load(teacherId);
ActionContext.getContext().put("a1", a1);
return "modifyteacher";
}
ServletActionContext.getRequest().getSession()
.setAttribute("LOGINsystem1", login2);
public String findMessage() {
Student login2=(Student) ServletActionContext.getRequest().getSession()
.getAttribute("LOGINsystem1");
pager = iStudentService.findMessage(login2.getId());
return "StudentfindMessage";
}
4.Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
原因数据未对位:name="id"改为name="teacherId"
<input name="teacherId" type="hidden" class="text1" id="userId" size="10" maxlength="10" value="${a1.id}" >${a1.id}
5.遇见的问题 不能转发
ServletActionContext.getRequest().getSession()
.setAttribute("LOGINsystem1", login2);
public String findMessage() {
Student login2=(Student) ServletActionContext.getRequest().getSession()
.getAttribute("LOGINsystem1");
pager = iStudentService.findMessage(login2.getId());
return "StudentfindMessage";
}
一. 由于是转发,所有所有路径全改
1.="../ 改为 ="yemian/
2.在jsp页面添加 绝对路径 和 jstl 标签
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">