MyEclipse80 开发 JSF12 简例详述Word格式.docx
《MyEclipse80 开发 JSF12 简例详述Word格式.docx》由会员分享,可在线阅读,更多相关《MyEclipse80 开发 JSF12 简例详述Word格式.docx(7页珍藏版)》请在冰点文库上搜索。
测试:
Run->
RunAs->
MyEclipseServerApplication。
应该在Console中显示MyEclipseTomcat启动输出信息,并在MyEclipseWebBrowser中显示http:
//thinkpad:
8080/MyJSFProject/。
页面输出:
ThisismyJSPpage.
加入JSF能力:
在“PackageExplorer”中选中项目MyJSFProject,然后操作菜单:
MyEclipse->
ProjectCapabilities->
AddJSFCapabilities...,在显示的对话框中,不做任何修改,直接点击Finish。
查看:
1.发现web.xml文件加入了FacesServlet的配置;
2.产生了faces-config.xml文件。
创建一个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("
myeclipse"
.equals(getUserName())&
&
"
.equals(getPassword()))
return"
success"
;
FacesContextfacesContext=FacesContext.getCurrentInstance();
FacesMessagefacesMessage=newFacesMessage(
Youhaveenteredaninvalidusernameand/orpassword"
);
facesContext.addMessage("
loginForm"
facesMessage);
failure"
}
后面将演示,这个方法如何被调用。
创建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="
ISO-8859-1"
%>
%@tagliburi="
prefix="
h"
%>
f"
%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()"
:
//"
request.getServerName()"
"
request.getServerPort()path"
/"
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
>
html>
head>
basehref="
%=basePath%>
title>
MyJSF'
login.jsp'
startingpage<
/title>
metahttp-equiv="
pragma"
content="
no-cache"
cache-control"
expires"
0"
keywords"
keyword1,keyword2,keyword3"
description"
Thisismypage"
--
linkrel="
stylesheet"
type="
text/css"
href="
styles.css"
-->
/head>
body>
f:
view>
h:
formid="
loginform"
<
outputLabelvalue="
UserName:
/h:
outputLabel>
inputTextid="
userName"
value="
#{UserBean.userName}"
required="
true"
rendered="
inputText>
Password:
inputSecretid="
passsword"
#{UserBean.password}"
inputSecret>
commandButtonid="
submit"
action="
#{UserBean.login}"
Submit"
commandButton>
form>
/f:
/body>
/html>
注意,action="
意味着调用UserBean的login方法。
Form表单属性userName和password与UserBean的属性一一对应。
loginok.jsp代码:
loginok.jsp'
Hello<
outputTextvalue="
/>
yousuccessfullyloggedin.
好,至此,本例所有代码写完。
运行:
重新在URL中输入http:
8080/MyJSFProject/login.faces,需要注意的是,URL的扩展名是.faces,而不是.jsp。
页面显示,输入用户名和密码的页面,输入myeclipse作为用户名和密码,会跳转到loginok页面,否则,仍然停留在login页面。
附录:
下面是web.xml和faces-config.xml的完成文件:
web.xml
?
xmlversion="
1.0"
encoding="
UTF-8"
web-appxmlns="
xmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
version="
2.5"
xsi:
schemaLocation="
servlet>
servlet-name>
FacesServlet<
/servlet-name>
servlet-class>
javax.faces.webapp.FacesServlet<
/servlet-class>
load-on-startup>
0<
/load-on-startup>
/servlet>
servlet-mapping>
url-pattern>
*.faces<
/url-pattern>
/servlet-mapping>
welcome-file-list>
welcome-file>
index.jsp<
/welcome-file>
/welcome-file-list>
/web-app>
faces-config.xml
faces-configversion="
1.2"
xmlns="
xmlns:
xi="
//www.w3.org/2001/XInclude"
managed-bean>
managed-bean-name>
UserBean<
/managed-bean-name>
managed-bean-class>
com.myjsf.UserBean<
/managed-bean-class>
managed-bean-scope>
session<
/managed-bean-scope>
managed-property>
property-name>
userName<
/property-name>
value/>
/managed-property>
password<
/managed-bean>
navigation-rule>
from-view-id>
/login.jsp<
/from-view-id>
navigation-case>
from-outcome>
success<
/from-outcome>
to-view-id>
/loginok.jsp<
/to-view-id>
/navigation-case>
failure<
/navigation-rule>
/faces-config>