大约在两周前,正式开始学习java了,视频讲座,资料,插件,工具什么的下了一大堆,还不忘拷贝给同事。因为老杨说过公司可能要应用jsf + Hibernate. 先看了Jsf的视频,觉得真好玩,就先玩起了jsf。不过第一个程序让它跑起来还真不是那么容易的。
ok,让我记录下这个过程吧。
第一步,创建web工程
j2ee下创建web project,这没什么说的了,不过以前在eclipse中总是不知道怎么创建web应用,够傻的,原来需要插件,在myeclipse提供了全套的插件。不过Myeclipse需要破解。中国程序员似乎很少用正版的。言归正传,Myeclipse中需要在Open Perspective中选择j2ee enterprse视图。然后创建web project。这跟delphi的New一个project不太一样,delphi把所有可以new的都放在一个窗口中,而eclipse有不同的视图来提供管理,这算一种进步吧,插件化的进步。接下来需要 Add Jsf Capability,因为这个类库(不知道是否应该称为类库)支撑了jsf开发需要的组件。
第二步,创建bean
在New-àother中的Myeclipse-àweb-jsf下有managed bean,创建bean可以连java类文件一起创建,且可以将需要的属性一起完成,myeclipse可以自动完成属性的get,set方法。是个比较酷的功能。
第三步,创建,编辑jsp文件
在工程的webroot-->web-inf下面有一个facesconfig.xml文件,这个文件是javabean的管理文件,同时它管理了页面之间的切换关系,起到导航页面的作用。有趣的是这个文件居然有个漂亮的design界面,可以在上面创建新的jsp文件,且可以用拖拽方式定义页面之间的关系,让所有页面的关系看起来很直观。感觉这里是个很酷的设计。页面的导航是根据一个字符串来作为判断依据的,所以在配置导航关系时,只要设定From outcome的值为调用bean方法的返回值即可。值得注意的是,jsf对于导航值只允许string类型。
Jsp页面的编写其实很方便,即使不太懂,因为myeclipse提供了拖拽式的页面设计,如果熟练直接写代码也很好玩吧。我以前一直很讨厌html的代码,因为觉得太机械了,且不好记忆,这会得硬着头皮学了,不过在这种拖拽式的设计中可以省不少力气。记得jsp中使用java采用”<% %>”的方式,这会是:”#{}” 直接以bean来调用。
第四步,本地化
如果需要考虑国际化的问题,那么需要创建一个.properties的文件,否则可以跳过这里。.properties文件需要创建到源码文件的目录下,否则在指定位置时便会找不到它。.properties文件的配置非常简单,如同一个ini文件。如:"username=user name", 如果要显示中文的话,这里需要转化为unicode,jdk带了一个native2ascii的小工具可以轻松转换,不过这个玩意每次复制的时候都要先将编辑设为“标记”。不知道有没有更方便的工具。另外如果要支持中文的.properties文件需要以_zh_CN结尾才行。在jsp文件中使用下面形式定义:
<f:loadBundle basename="com.wwj.local" var="msg"/>
然后就如同java中的类一样使用了
<h:outputText value="#{msg.Welcome}">h:outputText>
不知道为什么,我的myeclipse中输入msg.时不能出现代码提示。
第五步,调试,运行
启动tomcat,输入url就可以运行了。不过文件的后缀不能是.jsp,必须为.faces.