vo中一定要把timestample类型对象改为date类型对象,否则子啊hql中new对象时会报错,提示找不到对应的构造器。原因是在oracle中对应的timestamp类对象在java中不能用timestamp类对象接受,必须用Date类对象。在前台新增时最好是用my97timepicker构件产生date类型的对象用yy--mm-dd HH:mm:ss格式来初始化时间对象,这样在后台接受时才不会报转换异常错误。并且在vo中格式时间对象时必须要用date_fomrat时间格式常量
在开发中修改vo时一定要重启tomcat;
在使用ecside时如果修改了table的tableId时必须要修改对应的add del update select按钮的js中的函数传递的from表单参数。如下:
<input type="button" value="新增" onclick="forwardNew('${ctx}/product/LgpProductLicense_create.action',document.forms.LgpProductLicenseExtend)"/>否则会提示js错误找不到对应的form表单
ecside中处理映射时如果在mappingItem中无法处理时间对象的映射,可以通过设置column的value属性对应到vo中的映射方法,通过方法完成映射的转换。通过提供的专门的映射方法完成映射如下:
在ec中:<ec:column property="validDate" value="${item.validDateStringForec}" title="<%=LgpLicense.ALIAS_VALID_DATE%>"/>
在vo中:
/*
* 用于处理对永久有效时间的显示
*/
public String getValidDateStringForec(){
String validDateString=convertDate2String(getValidDate(), FORMAT_VALID_DATE);
if(validDateString.equals("2100-01-01")){
return "永久有效";
}else{
return validDateString;
}
}
用onfocus和readonly属性组合代替onclick事件和tab键跳转需求实现文本框中禁止手动从键盘输入值,必须从弹出框中选择值的需求。