MyEclipse开发JSF之创建Managed Beans浅析
MyEclipse开发JSF三.创建Message Bundle
Message Bundle文件是一个简单的属性文件,存储与keys相关的消息,提供国际化支持,也可以用在JSP页面中。Struts也提供了类似的文件ApplicationResources.properties。
在JSF中,可以在页面中加载message bundle使用如下代码:f:loadBundle basename="com.jsfdemo.MessageBundle" var= "bundle"/
在创建message bundle文件之前,在src文件中通过右键选择“New Package”来创建com.jsfdemo包。使用新键文件向导来创建message bundle文件,如图3.1:
MyEclipse开发JSF图1
Figure 3.1: Creating the Message Bundle file
创建完MessageBundle.properties文件以后,要添加在JSP页面显示的每个标签的key/value对或者是文本字符串。可以复制下面中的内容到message bundle文件中。
MessageBundle.properties
user_name_label=User Name:
user_password_label=Password:
login_button_label=Login
MessageBundle.properties文件的内容
MessageBundle文件创建完以后,下一步,我们要创建ManagedBean以处理用户登录。
MyEclipse开发JSF四.创建 Managed Beans
这部分我们将创建Managed Beans来执行login操作,在这个Demo中,登录操作就是简单的核对用户名和密码是否都是myeclipse,并将页面转向到userLoginSuccess.jsp。
首先用MyEclipse JSF Editor打开faces-config.xml文件
MyEclipse开发JSF图2
Figure 4.1: Opening faces-config.xml file for editing
点击右上角的Add ManagedBean来添加新的bean,如图所示:
MyEclipse开发JSF图3
Figure 4.2: Launch the ManagedBean wizard from the Outline View
点击以后出现新的Managed Bean向导,如图所示添加值
MyEclipse开发JSF图4
Figure 4.3: Setup the new ManagedBean's class and properties
MyEclipse开发JSF图5
Figure 4.4: Managed Bean Wizard Final Page
点击完成以后,发现在Outline View中新增加了一个UserBean.
MyEclipse开发JSF图6
Figure 4.5: UserBean now shown in the Outline View
UserBean.java的源代码也出现在 java编辑器中。
MyEclipse开发JSF图7
Figure 4.6: UserBean Java source opened up in an editor
Username 和password的setters和getters方法已经为我们产生了,接下来就是要在这个类中增加一个方法loginUser来处理用户登录的操作。
代码如下所示:
UserBean.java
public String loginUser() ...{ if("myeclipse".equals(getUserName()) && "myeclipse".equals(getPassword())) return "success"; FacesContext facesContext = FacesContext.getCurrentInstance(); FacesMessage facesMessage = new FacesMessage( "You have entered an invalid user name and/or password"); facesContext.addMessage("loginForm", facesMessage); return "failure"; }
我们注意到,UserBean类没有继承任何JSF的类或接口,它只是一个简单的JavaBean包括额外逻辑来执行操作。他包括了类似Struts中的Struts Form 和 Struts Action的功能,将二者集成到一个类中.