您的位置:首页 > Web前端 > JavaScript

JSF2 学习日志,第一天,环境配置&hello world

2010-01-12 15:59 417 查看
0、环境配置

0.0、下载JDK

0.1、下载netbean,选基本版

http://zh-cn.netbeans.org/download/6.8/ml/

安装后,工具->插件,在已安装插件里面卸载不需要的,然后在可用插件中选择需要的,(主要是JSF相关的)。

0.2、下载tomcat,解压版的

http://apache.etoak.com/tomcat/tomcat-6/v6.0.20/bin/

下载后解压。

0.3、在netbean中配置tomcat服务器,工具->服务器,添加服务器

0.4、新建项目,java web, 选择合适的位置,名称,服务器,最后一步框架,选上JSF 2.0

1、Hello World

1、0 index.xhtml

打开index.xhtml可以看到系统生成的首页文件

]<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
Hello from Facelets
</h:body>
</html>


一般的xhtml 1.0文件,没有什么特别的,其中xmlns:h="http://java.sun.com/jsf/html",定义了h:的名空间。

这个很简单,就不说了。

1、1hello

下面新建hello.xhtml,加上一个表单

]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Hello World!</title>
</h:head>
<h:body>
<h2>My name is lich.  What is yours?</h2>
<h:form id="helloForm" >
<h:inputText id="username" value="#{helloBean.name}"/>
<h:commandButton id="submit" action="response" value="Submit"/>
</h:form>
</h:body>
</html>


这个表单由h:inputText和h:commandButton

其中h:inputText的值赋helloBean.name,

1.2response

新建response.xhtml,其中显示helloBean.name的值,然后添加按钮,返回hello.

]<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<body>
<h:form id="responseform">
<h2>Hi, #{helloBean.name}</h2>
<h:commandButton id="back" value="Back" action="index" />
</h:form>
</body>
</html>


1.3hello Bean

下面写helloBean

]package helloworld;
public class HelloBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


一个bean,一个字段,以及对于的get和set方法,和一般的bean相比,多了@ManagedBean和和@SessionScoped两句,这是关键,JSF2通过这个特性,简化了在xml中配置bean的烦琐过程

更多的注释托管如下:

托管 bean 注释描述属性
@ManagedBean
以托管 bean 的形式注册一个类实例,然后将其放入到使用其中一个
@...Scoped
注释指定的范围内。如果没有指定任何范围,JSF 将把此 bean 放入请求范围,如果没有指定任何名称,JSF 将把类名的第一个字母转换为小写,形成一个托管 bean 名称;例如,如果类名为
UserBean
,那么 JSF 将创建一个托管 bean,其名为
userBean
eager
name
属性都是可选的。

注释必须结合使用一个实现零参数构造器的 Java 类。

eager
name
@ManagedProperty
为托管 bean 设置一个属性。注释必须放在类成员变量的声明之前。
name
属性指定特性的名称,默认情况下为成员变量的名称。
value
属性是特性的值,可以是一个字符串,也可以是一个 JSF 表达式,比如
#{...}


value
name
@ApplicationScoped
在应用程序范围内存储托管 bean。
@SessionScoped
在会话范围内存储托管 bean。
@RequestScoped
在请求范围内存储托管 bean。
@ViewScoped
在视图范围内存储托管 bean。
@NoneScoped
将托管 bean 指定为没有范围。无范围的托管 bean 在被其他 bean 引用时比较有用。
@CustomScoped
在定制范围内存储托管 bean。

value
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: