java学习中错误汇总

1.每次进行保存时,级联对象都自动改变。(如回复、留言是多对一的关系,如果在进行过程中不刷新,有新的留言保存后,回复的留言外键值将自动改变为新的留言ID)

解决方法:在Spring的配置文件,Action配置中加上:scope="prototype"。

原因可能是:默认情况下,从bean工厂所取得的实例为Singleton(bean的singleton属性) Singleton: Spring容器只存在一个共享的bean实例,默认的配置。 Prototype: 每次对bean的请求都会创建一个新的bean实例。

 

2.使用fckeditor时候,保存的内容都以"

...

"此方式显示。

解决方法:显示时,为:

原因标签的escape属性默认为true,即不解析html代码,直接将其输出。若要想输出html的效果,则要改为false.而fckeditor恰好是一个可视化HTML编辑器。

 

3.javamail中的两个错误:

(1)Exception in thread "main" java.lang.NoClassDefFoundError:com/sun/mail/util/LineInputStream
        原因:
原因是jar包版本不统一,解决方法如下: 删除Java EE 5 Libraries/javaee.jar/mail里的包有东西.
        解决方法:用rar打开X:/Program Files/MyEclipse 6.5  /myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806/data/libraryset/EE_5 ,然后删除mail。
(2)java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport

        原因:原因是jar包版本不统一,解决方法如下: 删除Java EE 5 Libraries/javaee.jar/activation里的所有东西.

        解决方法:用rar打开X:/Program Files/MyEclipse 6.5  /myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806/data/libraryset/EE_5 ,然后删除activation。

 

4.org.hibernate.hql.ast.QuerySyntaxException: Messageid is not mapped.

原因:

1、from是实体类而不是表名

2、hibernate配置文件中没有加入相应的映射文件

 

5.attempt to create saveOrUpdate event with null entity:<以下为转载内容:http://www.blogjava.net/sxyx2008/archive/2009/10/19/298821.html>

 

从上面的异常信息可以看出是在Hibernate进行save的时候检测到beannull

1)        大致从这几个方面来分析原因:

2)        Hibernate(*.hbm.xml)映射文件是否错误

3)        DAO层代码是否错误

4)        检查Action及视图层jsp页面等

从上面几个逐个检查后得出的结论为第四条

首先看Action中的代码

private Employee employee;

    public Employee getEmployee() {

        returnemployee;

    }

    publicvoid setEmployee(Employee employee) {

        this.employee = employee;

    }

这里employee是我们观察的重点

再看jsp中的代码

<s:form action="saveEmployee.action">

        <s:textfield name="empName" label="empName">s:textfield>

        <s:textfield name="age" label="age">s:textfield>

        <s:textfield name="sex" label="sex">s:textfield>

        <s:textfield name="context" label="context">s:textfield>

        <s:submit value="注册" theme="simple">s:submit>

        <s:reset value="取消" theme="simple">s:reset>

s:form>

大家注意name属性的值

很显然错误发生在此处修改如下即可:

<s:form action="saveEmployee.action">

        <s:textfield name="employee.empName" label="empName">s:textfield>

        <s:textfield name="employee.age" label="age">s:textfield>

        <s:textfield name="employee.sex" label="sex">s:textfield>

        <s:textfield name="employee.context" label="context" value="">s:textfield>

        <s:submit value="注册" theme="simple">s:submit>

        <s:reset value="取消" theme="simple">s:reset>

    s:form>

由此我们得出的结论是:

jsp页面中一定要保持页面中各个控件的name属性与Action中模型驱动对象的名字一致否则就会报错

你可能感兴趣的:(Java,学习中的错误,SSH,java,可视化html编辑器,hibernate,fckeditor,action,bean)