JSF(Java Server Faces)是一种用于构建Web应用程序的新标准Java框架。提供了一种以组件为中心来开发Java Web的用户界面的方法,从而简化了开发。
 
JSF是Java Web应用的用户界面框架,其设计目标是简化Web应用的开发和维护。当然,JSF最直接的服务对象还是基于HTTP协议和HTML客户端的Java Web应用。JSF是在Java Web中开发Web UI的框架,像大部分Java Web框架一样,JSF遵循业务逻辑和显示的分离。
 
一个JSF应用就是一个JSP和Servlet应用。它有一个配置描述符,有JSP页面、客户定制标签和静态资源。不同的是,JSF应用是事件驱动的。用户可以通过写一个侦听事件类决定应用程序的行为。JSF应用和Java Web应用一样,它们在Java Servlet容器中运行。通常情况下他们包含:
 
1:JavaBean组件(它们在JSF中被称为Model对象)。
 
2:事件监听器。
 
3:页面(JSP)。
 
4:服务器端帮助类,如数据库访问Bean。
 
在工程的webroot-->web-inf 下面有一个faces-config.xml文件,这个文件是Javabean的管理文件,同时它管理了页面之间的切换关系,起到导航页面的作用。有趣的是这个文件居然有个漂亮的design界面,可以在上面创建新的jsp文件,且可以用拖拽方式定义页面之间的关系,让所有页面的关系看起来很直观。感觉这里是个很酷的设计。页面的导航是根据一个字符串来作为判断依据的,所以在配置导航关系时,只要设定From outcome的值为调用bean方法的返回值即可。值得注意的是,JSF对于导航值只允许string类型。
 
 
调试,运行
 
启动tomcat,输入url就可以运行了。不过文件的后缀不能是.jsp,必须为.faces.
 
 

实例:MyEclipse开发JSF:

1:创建Java Web项目名称为JSFTest。

2:右击项目MyEclipse----Add JSF Capabilites...----出现如下图:

finish后打开faces-config.xml,在大纲视图出现如下图:

右击Managed Beans如下图:

如下图:

如下填写:

为Bean添加属性,右击:

如下配置:

再来一个属性:

此时的UserBean如下:

添加方法hello如下:

public java.lang.String hello(){
if(this.getName().equals("")){
return "fail";
}
else{
this.setWelcome("欢迎,"+this.getName());
return "login";
}
}

右击Managed Beans如下图:

如下图:

如下填写:

为Bean添加属性,右击:

如下配置:

再来一个属性:

此时的UserBean如下:

添加方法hello如下:

public java.lang.String hello(){
if(this.getName().equals("")){
return "fail";
}
else{
this.setWelcome("欢迎,"+this.getName());
return "login";
}
}

点击J图形工具如下图:

然后再配置文件里面单击出现如下图:

配置第一个JSP文件index.jsp

将本来的代码删除然后填上如下代码:

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>第一个JSF程序</title>
</head>
<body>
<f:view>
<h:form>
请输入姓名:<h:inputText
value="#{user.name}"/><p>
<h:commandButton value="提交"
action="#{user.hello}"/>
</h:form>
</f:view>
</body>
</html>

如下图:

在重复上面的步骤来一个welcome.jsp填上如下代码:

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>第一个JSF程序</title>
</head>
<body>
<f:view>
<h:outputText value="#{user.welcome}"/>
</f:view>
</body>
</html>

两个JSP如下图:

单击如下图工具:

先点击index.jsp再点击welcome.jsp出现如下,配置login:

点击两下index.jsp出现如下图配置fail:

得到的配置图形:

然后部署项目(服务器为tomcat6.0.18)。

在浏览器里面输入: http://localhost:8080/JSFTest/index.faces

 
 
 
 
 
 
 
 

JSF HelloWord的更多相关文章

  1. React.js 官网入门教程 分离文件 操作无法正常显示HelloWord

    对着React官网的教程练习操作,在做到分离文件练习时,按照官网步骤来却怎么也无法正常显示HelloWord. 经测试,html文件中内容改为: <!DOCTYPE html><ht ...

  2. JSF primefaces dataTable paginator 表格分页 问题

    当第一次查询返回list列表,分页1,2,3.....这是选择2,当前页面停留在第2页. 当再次查询后,因为使用的ajax,结果更新了,但当前页面依旧是第2页. 可以在jsf页面,datatable的 ...

  3. 关于JSF中immediate属性的总结(二)

    The immediate attribute in JSF is commonly misunderstood. If you don't believe me, check out Stack O ...

  4. jsf初学selectOneMenu 绑定与取值

    jsf 的selectOneMenu 最后生成的<select>标签.这里涉及到一个binding 起初一直不知道是干嘛的,后来参考了其他文章.就相当于在asp.net 中如:<as ...

  5. 使用JSF框架过程中的若干典型问题及其解决方案

    1.commandXxx点击后,不调用action中的方法: 原因1:xhtml后缀名的文件,最终也会转化为普通的html文件(这是熟悉JSF框架的关键.),commandXxx点击后不调用后台act ...

  6. jsf初学解决GlassFish Server 无法启动

    由于公司需要用JSF开发项目.公司同事都不熟悉,本人C# 转JSf.开发工具 netbeans GlassFish. 遇到GlassFish 非常 纠结的问题.搞了好一段时间,, 装好GlassFis ...

  7. JSF标签的使用2

    n  事件监听器是用于解决只影响用户界面的事件 Ø  特别地,在beans的form数据被加载和触发验证前被调用 •    用immediate=“true”指明这个行为不触发验证 Ø  在监听器调用 ...

  8. JSF 与 HTML 标签的联系

    *页面的开头 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ t ...

  9. Android环境配置及运行helloWord案例

      Android的环境搭建步骤,以及输出一个helloWorder 1:下载Android开发环境   及是: SDK adt-bundle-windows-x86_64-20140702 此时的版 ...

随机推荐

  1. HDU2947Bicycle Puzzle(组合原理)

    题目大意: 你和朋友两人玩游戏,将一个图片均等切割成W* H块,打乱每一小块的位置.拼图游戏开始.每次,可以交换任意两块,记下交换的次数,图片还原游戏结束.得分为执行交换的次数.得分越小越好. 现在, ...

  2. 计算直线的交点数(hdu1466简单的dp)

    题意:平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数.比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). 思路:动态规划,想办法记忆化搜索,当前状态和之前状态结合起来 d ...

  3. Linux内核完全注释之编程语言和环境(一)

    as86汇编器 1.来源与对于linux的用途 as86来源minix-386开发的intel 8086.80386汇编编译程序和链接程序,他主要为linux创建16位的启动引导扇区程序boot/bo ...

  4. Mahout之Navie Bayesian命令端运行

    landen@landen-Lenovo:~/文档/20news$ mahout trainclassifier --helpMAHOUT_LOCAL is not set; adding HADOO ...

  5. 全世界最短IE判定if(!+[1,])的解释(转)

    全世界最短IE判定if(!+[1,])的解释   虽然从司徒先生的博客上看到 全世界最短的IE判定 很长时间了,却一直对于原理没怎么去细看,今天同事(也是一后台程序员,并非前端)又问到这个问题,于是我 ...

  6. (剑指Offer)面试题34:丑数

    题目: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路: 1. ...

  7. mysql修改用户密码 新增用户

    修改密码: mysql> grant all privileges on *.* to yongfu_b@'192.168.1.%' identified by 'my_password_new ...

  8. word2013中取消句首字母自动大写

    经常使用word的朋友都知道word中一行的首字母会自动大写,这给用户带来方便的同时,也产生了问题,因为有时候我们并不希望每行开头的首字母大写.要取消首字母自动大写可以取消勾选"首句字母大写 ...

  9. Nutch 教程

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  10. Java常见排序算法之快速排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...