Liferay开发遇到的问题

本文总结了一系列软件开发过程中的实用技巧,包括主子表关联、事务管理、页面跳转、参数传递等方面,提供了多种解决方案,并强调了开发过程中需要注意的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.主子表关联时,可将主表对应子表记录的方法,全写在子表中,主表只做调用。
2.删除对应记录集时,底层可以直接删除符合条件记录,而不用找到实体后,再通过id删除
3.在写新增、修改、删除的方法时,最好用前面带add/delete/edit的方法,因为在spring事务管理中有为这些方法开头的添加了事务。
4.在Action中sendRedirect(req, res);容易导致页面跳转异常
可用setForward(req, "ext.projectmanage.task.view");指定跳转地址
或用res.sendRedirect(redirect);指定返回的页面地址
5.类和jsp文件都正确,却无法添加数据的原因:Hibernate等配置文件没有添加
ext-hbm.xml ext-model-hints.xml ext-spring.xml
6.获取变量前先判空,避免发生异常
7.Form提交要写明提交方式(如method="post")否则可能导致页面跳转异常
8.LocalServiceImpl中的方法继承LocalServiceBaseImpl,所以方法应该重载,即方法名不同或参数不同。否则不会被调用,被调用的则是LocalServiceBaseImpl。
9.找不到某个类的原因,特别是跟数据库操作有关的,有可能是三个配置文件中缺少了该类对应的配置。
10.Action调用LocalServiceUtil中的方法,为了保持事务性,这些方法必须在LocalServiceImpl中调用PersistenceImpl中的相应方法。否则有时会报Session未绑定线程,未进行事务处理。
11.在通讯录中添加员工后,需要在后台管理中为该用户添加相应社区,才可以浏览相关页面。
12.参数不能传递的原因,跟踪其所经过的所有页面,特别是jspPortlet的管理页面,参数也必须在管理页面获取并传递。
13.在Liferay中使用jQuery.blockUI时添加gif图片不能显示,但在外部测试时可以显示,原因未知。解决方法:
 jQuery.blockUI({message:jQuery('#loadData')});   使用jQuery获取Div中的Html
 图片和文字不能对齐的解决方法:使用Table对齐,将cellspacing="0"
14.使input type="file" 不可编辑
 (1).变通处理:
  <input type=file id=a1 style="visibility:hidden">
  <input id=a2 type=text readonly>
  <input type=button value=浏览 onclick="a1.click(); a2.value= a1.value">
  (2).增加如下属性:
  contenteditable="false"
  实例代码:
  <input type="file" style="width: 446px" id="ptlFile" contenteditable="false"/>

 

15.开发时应注意的几点问题:

(1)参数保存(查询、页数、页条数)

(2)更新保存高亮

(3)表单验证和提交时的问题,提交后刷新重复提交的问题

(4)

16.div 中图片和文字对齐的方法

内部使用<span> 可以防止换行,使用vertical-align:middle 属性可以将图片和文字对齐

17.直接在页面获取user对象的属性

String emailAddress = user.getEmailAddress();  因为user对象是内置对象,所以可以直接访问

18.数据测试点:(1)最大字数 (2)正常数据 (3)无数据

19.编译后出现$1.class与$2.class的情况: 这是因为我们的类中存在匿名类

20.double四舍五入的方法:

double d = 22.365434;

BigDecimal a = new BigDecimal(d);

//第一个参数2是小数点后保留几位,第二个是四舍五入

System.out.println("a.setScale(2,BigDecimal.ROUND_HALF_UP)=" + a.setScale(2, BigDecimal.ROUND_HALF_UP));

 

或者:

double value = 22.365454;

 

DecimalFormat df = new DecimalFormat("##.00");

value = Double.parseDouble(df.format(value));

System.out.println(value);

 

21.jsp_portalet 和 struts_portalet 的区别

(1)liferay-portalet-ext中  jsp_portalet 的<use-default-template>属性应为true,否则不显示设置面板

而struts_portalet若为true则会导致设置面板重复显示

22.在Portal系统中,文件的路径若使用相对路径,均得从html/portlet开始,否则会找不到路径

23.在开发时遇到某些标签,想使标签中的下拉选项和图片不可用,但是不好获得标签的属性,最后用jQuery轻松解决。先获取该div(或td下的所有select,然后使其不可用,再使它下面的图片隐藏就OK了)。当然,记得再触发回来时将它显示。

jQuery('#entryDateChart select').attr('disabled','disabled');
jQuery('#entryDateChart img').hide();

 

 

 

开发应注意的问题

1.测试时应细心,注意细小的样式问题

2.注意思考逻辑,检查是否遗漏问题

3.将开发中遇到的问题收集

4.打包文件时,注意文件的修改时间

5.记录下修改系统的每一点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值