公司动态
当前位置:首页 > 公司动态 > 员工风采 > 工作学习心得

       上个月技术主管将编码的规范性给我们讲述了一遍并就某些具体工作进行了简短的介绍,同时对每人的工作进行了布置。目前我负责的是发动机管理模块,现今已经完成。在开发过程中,经过技术主管的亲临指导以及同事的热心帮助,促使我对公司的业务有了更深的了解和认识。在我不断的学习和实践中,总结了一些项目经验和开发技巧,增强了实践经验,现将我近一个月的学习工作心得体会汇报如下。

下面以开发流程讲一下我的开发工作心得体会。

一、实体的创建

创建出实体在其上加入@Table(注:与数据库对应起来)、@Entity对该实体进行描述(例:@Entity@Table(name = "students")),然后将实体的属性一一写出并加上注解@Column对此属性进行描述。(例:@Column(name = "stuName", nullable = false, length = 5)要与数据库对应一起来!)

二、业务处理的编写

对自己所要实现的业务进行设计并编写接口。然后编写接口所对应的实现类,加入@Service、@Transactional对实现类进行描述。接着将自己使用的工具写入其中,并加上@Inject、@xxxDao对工具dao进行注入。最后编写自己的业务、使用工具对业务进行细致处理。(注意:在对增删改操作时,需要记录日志以便于监测数据的安全性。此时要加入@ActionSubscribe对相关处理方法进行描述!)

三、ManageBean的编写

首先要加入@Named/@ManagedBean(name="xxx")(描述ManageBean)、@xxxScoped(对其作用域进行描述)。然后将业务工具类写入其中加上@Inject对其进行注入。接着编写初始化方法并加上@PostConstruct对其进行描述。最后编写相关方法进行业务功能调用。

四、页面显示及调用转换器

由于在开过程中我发现页面显示比较困难、也比较多,所以做重点分享。我大部分显示使用的是DataTable,首先介绍一下DataTable。

JSF框架有丰富的控件,有一个命名为DataTable的来渲染和格式化html表。使用DataTable,我们可以遍历集合或值数组以显示数据。DataTable具有以简单的方式修改其数据属性的特点。

简单的介绍一下它常用的标签属性:

 

属性

描述

id

标签的标识

value

组件的值,通常是值绑定

var

表示当前项的数据表创建的变量名

styleClass

级联样式表(CSS)类名称

selection

 参考选择数据

type

链接类型; 例如样式表

rowkey

数据模型的唯一标识符,并由DataTable使用以找到所选的行。可以通过使用rowkey属性或绑定数据模型来定义此键。它实现了Or.PrimeFrace.MultudioStudiabDeDATAMODEL。

在开发过程中,我遇到了DataTable嵌套,DataTable2的数据需要DataTable1中的数据查询得到(显示上类似于树状菜单),经过技术主管的指导,成功的将数据显示出来了。关键在于,在实体类中创建一个list集合!通过DataTable1的list.list获得DataTable2的数据源。

 

另外介绍一下转换器, JSF框架提供了针对所有Java基本类型的标准转换器,用这些标准转换器就可以实现Java基本类型和字符串类型之间的相互转换。这些标准转换器的实现类在javax.faces.convert包下。在标准转换器中,基本类型的数据在转换时都会自动调用对应的标准转换器,无须人为干预,而对于Date对象,提供更加精细化的数字格式化,可以使用DateTime转换器和Number转换器。Converter并不是PrimeFaces定义的,属于JSF规范。除了以上介绍的转换器,javaEE6.0还实现了一部分数据类型的Converter,位于javax.faces.convert 包内:

BigDecimalConverter,BigIntegerConverter,BooleanConverter,ByteConverter,CharacterConverter,DoubleConverter,FloatConverter,IntegerConverter,LongConverter,ShortConverter。

对于只有一个属性的简单对象,如数值或者字符串、日期等,界面所输入和显示的字符串是可以完全包含内部存储变量的值,但对于包含多个属性的对象,通常是不能和表示形式完全等价转换的,比如在界面上显示一个人员信息列表,只显示其姓名,但为防止重名,通常是使用ID等唯一编号来表示的,需要定义一个特定的Converter来进行编号和对象之间的相互转换。在JSF页面代码中,选中的对象是需要转换为一个字符串形式来传递给后台的,所以每个对象要有一个字符串表示形式,同样该字符串表示形式也要能转换为对象。

JSF中的Faces转换器都必须实现接口javax.faces.convert.Converter ,该接口定义了两个方法:

public Object getAsObject(FacesContext context, UIComponent component, String value)

public String getAsString(FacesContext context, UIComponent component, Object value)

这两个方法所做的工作正好相反,一个是把String类型的value转换为Object类型,一个是把Object类型转换为String类型,分别用于处理输入和生成显示用的HTML代码。

 比如以ID号作为员工对象转换为String的表示内容,Object to String,return ""+((Employee)obj).getId() 就行了,String to Object则是从数据库获取相关信息进行转换,还有一个方法是把它缓存在Session里,直接到里面查找(不建议)。

总之:经过这次项目的锻炼,我对公司的业务有了更深的了解和认识。虽然我对公司项目中封装的代码及工具还处于学习阶段但是对于某些封装的工具可以熟练的应用到自己负责的模块之中。在今后的工作之中我会更加努力学习专业知识,尊重领导,团结同事,促使自己更快成长。我相信在各位领导的支持和悉心指导及同事的热心帮助下,我会充分发挥自己的业务技能,在各项工作中锤炼自己,为公司的发展做出更大的贡献!

 

汇报人:刘翀昊

日期:2018/6/15

版权归威海众成信息科技股份公司所有,转载请注明出处

 

点击下载