MyEclipse85开发JSF简例详述.docx
《MyEclipse85开发JSF简例详述.docx》由会员分享,可在线阅读,更多相关《MyEclipse85开发JSF简例详述.docx(6页珍藏版)》请在冰豆网上搜索。
MyEclipse85开发JSF简例详述
MyEclipse8.5 开发JSF简例详述
Cjj整理上传
简介
本例详细描述用MyEclipse8.5开发JSFweb应用的过程。
使用的lib文件自行添加。
(常用架包)
(本例改编自MyEclipse8.0帮助文档。
)
1.安装MyEclipse8.5(略)
2.创建web 应用:
操作菜单:
File->New->WebProject, 输入ProjectName:
MyJSF, 把J2EESpecificationLevel改为:
JavaEE5.0。
点Finish。
测试:
操作菜单:
Run->RunAs->MyEclipseServerApplication。
应该在Console中显示MyEclipseTomcat启动输出信息,并在MyEclipseWebBrowser中显示http:
//localhost:
8080/MyJSF/。
页面输出:
ThisismyJSPpage.
3.加入JSF能力:
在“PackageExplorer”中选中项目MyJSF,然后操作菜单:
MyEclipse->ProjectCapabilities->AddJSFCapabilities...,在显示的对话框中,不做任何修改,直接点击Finish。
查看:
1.发现web.xml文件加入了FacesServlet的配置;
2.产生了faces-config.xml文件。
4.创建一个Bean(JSF称之为managedbean):
打开faces-config.xml,MyEclipse提供了这个文件的三种呈现视图:
Flow,Design和Source,点击Design,在faces-config列表中选中ManagedBeans,会出现ManagedBeans编辑表格,点击Add...,把Scope设置成Session,Class:
写成com.myjsf.UserBean,Name写成UserBean。
最后点击Finish。
查看:
1.在src目录下生成了com/myjsf/UserBean.java文件。
2.在faces-config.xml中加入了UserBean的配置信息。
为UserBean添加属性:
在faces-config(Design视图)列表中选中ManagedBeans->UserBean,在Properties编辑表格中,点击Add...,在
Property-Name中录入:
userName,然后点击Finish。
用同样的方法加入属性:
password。
查看:
UserBean.java文件加入了两个属性和它们的setter/getter方法代码。
为UserBean添加Action:
(能被form表单调用的Action)
在UserBean.java加入方法login,代码如下:
publicStringlogin(){
if("cjj".equals(getUserName())&&"123".equals(getPassword()))
return"success";
FacesContextfacesContext=FacesContext.getCurrentInstance();
FacesMessagefacesMessage=newFacesMessage(
"Youhaveenteredaninvalidusernameand/orpassword");
facesContext.addMessage("loginForm",facesMessage);
return"failure";
}
后面将演示,这个方法如何被调用。
5.创建login.jsp和loginok.jsp
打开faces-config.xml文件,这次使用Flow编辑器,在左面工具栏中,点击具有“J”标志的工具框,在编辑器空白处点击鼠标,会弹出此JSP信息编辑对话框,FileName:
改成login.jsp。
Templatetouse:
改成DefaultJSFTemplate。
点击Finish。
用同样的方法,创建loginok.jsp。
本例的目标是用户在login.jsp中输入用户名和密码后,提交的请求被UserBean处理,如果验证正确,则页面跳转到loginok.jsp,如果不成功,则仍然返回login.jsp。
点击带有右箭头的工具框,顺序点击login.jsp和loginok.jsp,会出现一个箭头,并弹出对话框,在FromOutcome中填入success。
(这个success与上面login方法中的返回值“success”对应),意思是说,UserBean处理完login.jsp的请求,返回成功时,则跳转到loginok.jsp页面。
再点击带有右箭头的工具框,顺序点击login.jsp两次,会出现一个闭合的箭头,并弹出对话框,在FromOutcome中填入failure。
(这个failure与上面login方法中的返回值 “failure”对应),意思是说,UserBean处理完login.jsp的请求,返回失败时,则跳转到login.jsp页面。
好,到此为止,本例中的Bean代码和 faces-config.xml的代码都写完。
下面开始写 login.jsp和loginok.jsp代码。
编辑jsp代码,可以用MyEclipse自带的design工具,下面就不详细描述了。
结果代码如下(只有斜体部分才是后加入的代码):
login.jsp的代码:
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="h"%>
<%@tagliburi="prefix="f"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSF'login.jsp'startingpage
--
-->
view>
formid="loginform">
outputLabelvalue="UserName:
">
outputLabel>
inputTextid="userName"value="#{UserBean.userName}"required="true"rendered="true">
inputText>
outputLabelvalue="Password:
">
outputLabel>
inputSecretid="passsword"value="#{UserBean.password}"rendered="true"required="true">
inputSecret>
commandButtonid="submit"action="#{UserBean.login}"type="submit"value="Submit">
commandButton>
form>
view>
注意,action="#{UserBean.login}"意味着调用UserBean的login方法。
Form表单属性userName和password与UserBean的属性一一对应。
loginok.jsp代码:
<%@pagelanguage="java"pageEncoding="ISO-8859-1"%>
<%@tagliburi="prefix="h"%>
<%@tagliburi="prefix="f"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSF'loginok.jsp'startingpage