浏览 1983 次
锁定老帖子 主题:DeBug 记事
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-21
最后修改:2009-03-04
今天开个头。。。 1.JSP页面里通过struts标签取bean的property,控制台报异常如下: 严重: Servlet.service() for servlet action threw exception javax.servlet.jsp.JspException: No getter method for property: "×××" of bean: "×××" a.检查bean的property以及getter/setter方法,未发现缺失; b.分析property的命名,符合规范,排除与关键字冲突的可能; c.在service implement 代码中找到了问题源头。原来是 返回 给 action 的 Entity list 中只是简单的堆砌了一组String变量,页面解析时,迭代出来的是一组object对象,所以找不到property的getter方法。------解决问题:在service implement 中,用bean对象的property保存String值,把bean对象添加到要返回的list。 2.struts-config.xml 中 forward path 配置,需指定两个以上的参数,使用特殊字符'&'连接参数,如下所示: <forward name="success" contextRelative="false" redirect="false" path="/myAction.do?method=list&submitAction=init"/> 出现语法格式错误提示,应用无法运行。 google了一下,原因是XML里包含特殊字符必须转义, 字符'&'对应的转义字符为'&',修改配置为: <forward name="success" contextRelative="false" redirect="false" path="/listUsersAction.do?method=list&submitAction=init"/> 就OK了。 3.自己写了个oracle的数据库脚本,执行后,在应用里使用Hibernate的JPA实现方式测试CRUD操作。数据表的Id是根据sequence实现自增。使用Junit测试时发现数据库里新增的数据是按50的自增量累加的。修改Id注释为: @SequenceGenerator(name="my_seq", sequenceName="my_seq",allocationSize=1)问题解决。(allocationSize指定了自增量为1,默认为50) 4.JPA主键自增表解决oracle/MySQL主键生成策略兼容问题,在主键的getter方法前定义: @Id @Column(name = "your_ID" ,unique = true, nullable = false) @TableGenerator( name="your_table_generator", table="hibernate_sequences", pkColumnName="sequence_name", valueColumnName="sequence_next_hi_value", pkColumnValue="your_table_seq", allocationSize=1, initialValue=0 ) @GeneratedValue(strategy = GenerationType.TABLE, generator="your_table_generator") 经测试需要手动创建存放序列的数据表hibernate_sequences,脚本如下: DROP TABLE hibernate_sequences; CREATE TABLE hibernate_sequences ( sequence_name varchar(128) NOT NULL, sequence_next_hi_value number(8), CONSTRAINT hibernate_sequences_pkey PRIMARY KEY (sequence_name) ); 5.主键映射别名技巧:(如果你想在页面用'id'来获取表主键的属性,而实际上主键的命名并不是'id'而是其它的,比如'seqNo',一个小花招就可以略过这个问题了) /** * @see your jsp ,property 'seqNo' can be fetched as 'id' */ @Transient public Long getId() { return seqNo; } 6.文本域、密码输入域在IE下显示长度不一致,加入如下属性,问题解决: style="width:150px" 7.Eclipse 下无法保存 javascript 文件: 依次选择 window>>preferences>>general>>content types 在右边的窗口中打开列表,选中"JavaScript",在下面的"default encoding"右边的输入框中输入"GBK"或"GB2312",再点"update"按钮,我选的中"GBK",就可以了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-13
请教关于“6.文本域、密码输入域在IE下显示长度不一致”的解决方案,
如果用的是struts标签生成html代码产生的长度不一致的怎么解决呢? 如下: <html:text property="user"/> <html:password property="password"/> |
|
返回顶楼 | |