netbeans 打包exe用el语法要引入什么包

JavaEE6的Facelet视图声明式语言
Facelet是JSF技术的视图声明式语言。JSP也是JSF技术提供的技术,在JavaEE6中,JSP已经无法支持JSF的许多新功能。JSP技术是JSF即将抛弃的技术,Facelet是JSF规范之一,并用于基于JSF技术的应用开发。
下面是本文的目录
什么是Facelet
简单Facelet应用的开发
使用Facelet模板
&&& 复合组件
&&& Web资源
什么是Facelet
Facelet是一个功能强大且轻量级的声明式语言,主要用于使用HTML样式模板创建JSF视图并创建组件树。Facelet包含如下功能:
使用XHTML创建网页
通过Facelet标签库以支持JSF和JSTL标签库
支持EL表达式语言
为组件和页面创建模板
在大型项目开发过程中Facelet的优势主要有以下几个方面:
支持在创建模板和复合组件时代码重用
支持组件函数扩展和个性化服务器端对象
&&& 快速编译
编译时EL验证
高性能的渲染
简单的说,Facelet的应用将会大大缩短开发部署周期及提高效率。
Facelet视图用于创建XHTML页面,JSF的实现支持的XTML页面创建与XHTML过渡文档类型一致。
DTD的定义参考:。按照惯例,使用XHTML创建的网页应使用.xhtml扩展名。
JSF支持网页组件中附加的一系列标签库,为了支持JSF的标签库机制,Facelet使用XML名字空间声明。表5-1列出了Facelet支持的标签库:
JSF Facelet
/jsf/facelets
ui:component
h:outputText h:inputText
JSF中UIComponent对象的组件标签
f:actionListener
f:attribute
JSF个性化行为特别是渲染套件
/jsp/jstl/core
c:forEach c:catch
JSTL1.2核心标签
/jsp/jstl/functions
fn:toUpperCase fn:toLowerCase
JSTL1.2函数标签
表5-1 Facelet支持的标签库
另外,Facelet支持复合组件标签,这样就可以声明个性化的字首来标识标签库。更多的复合组件信息,参考本书121页“复合组件”。
基于JSF支持JSF的EL表达式语言语法,Facelet使用EL表达式来引用托管Bean的属性和方法。EL表达式可以用来绑定托管Bean的组件对象、方法返回值和属性。EL表达式的更多信息,请参阅本书189页“使用EL表达式引用托管Bean”。
简单Facelet应用的开发
本节描述JSF应用程序开发的基本步骤,以下是我们需要做的工作:
开发一个托管Bean
使用组件标签创建页面
定义页面导航
映射Facelet实例
增加托管Bean声明
创建Facelet应用
本例采用猜数字这个应用。这个应用的功能是通过提问的方式让你猜0-10之间的数字,验证输入的数与生成的随机数是否相等,并反馈猜对或者猜错的页面。
开发托管Bean
在个性化的JSF应用中,应用的每一个页面都与托管Bean相关联。托管Bean定义了组件拥有的属性和方法,在这个例子中,每个页面都使用相同的托管Bean。
下面是托管Bean的类:UserNumberBean.java,主要是生成从0到10的随机数:
package guessN
import java.io.S
import java.util.R
import javax.faces.bean.ManagedB
import javax.faces.bean.SessionS
@ManagedBean
@SessionScoped
public class UserNumberBean implements Serializable {
&&& Integer
randomInt =
&&& Integer
userNumber =
&&& String
response =
&&& private
long maximum=10;
&&& private
long minimum=0;
&&& public
UserNumberBean() {
Random randomGR = new Random();
&&&&&&&&randomInt
= new Integer(randomGR.nextInt(10));
System.out.println("Duke’s number: " + randomInt);
&&& public
void setUserNumber(Integer user_number) {
userNumber = user_
&&& public
Integer getUserNumber() {
return userN
&&& public
String getResponse() {
if ((userNumber != null) &&
(pareTo(randomInt) == 0)) {
&&&&&&&&&&&&
return "Yay! You got it!";
&&&&&&&&&&&&
return "Sorry, " + userNumber + " is incorrect.";
&&& public
long getMaximum() {
return (this.maximum);
&&& public
void setMaximum(long maximum) {
this.maximum =
&&& public
long getMinimum() {
return (this.minimum);
&&& public
void setMinimum(long minimum) {
this.minimum =
注意@ManagedBean注解的使用,作用是将托管Bean注册为JSF的资源。@SessionScoped注解作用是将Bean的使用范围定义为session(会话范围)。
创建Facelet视图
创建页面或视图时,可以向页面增加组件,主要是为组件和托管Bean的值和属性创建关联,并注册组件的转换器、验证器和监听器。
在这个例子中,以XHTML为基础的网页作为首页。例子的首页是greeting.xhtml。网页各节不同的代码代表不同的信息。
网页首先声明页面的内容类型:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
紧接着将页面规范为XHTML页面,为网页用到的标签库声明XML名字空间:
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="/jsf/html"
xmlns:f="/jsf/core"&
随后在网页中插入组件标签:
Hi, my name is Duke. I am thinking of a number from
#{userNumberBean.minimum} to #{userNumberBean.maximum}.
Can you guess it?
value="#{userNumberBean.userNumber}"&
maximum="#{userNumberBean.maximum}"/&
注意以下标签
用来添加组件的Facelet的HTML标签
用于验证用户输入的Facelet核心标签:f:validateLongRange
h:inputText标签用来接收用户的输入并通过EL表达式#{userNumberBean.userNumber}将值传递给托管Bean的userNumber属性,使用JSF标准验证标签f:validateLongRange来对比输入值和随机值。
图片文件:wave.med.gif,作为页面的资源;还有样式表。有关资源的详细信息,请参阅本书第123页“Web资源”。
带ID标识的h:commandButton标签用于提交验证,根据导航,标签将客户页面重定向到另一个页面:&&&
response.xhtml,这个页面用来显示输入的反馈。页面指定了”response”标识,服务器根据标识查找对应的response.xhtml文件。
下面是第二个页面,response.xhtml文件的内容:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
xmlns:h="/jsf/html"&
alt="Duke waving his hand"/&
JSF应用的配置主要是为了映射Web部署时Faces
Servlet的描述文件,例如web.xml文件,可以添加应用中管理Bean的声明、导航规则以及资源包的声明。
如果使用NetBeans
开发环境,Web部署文件将会自动生成。修改自动生成的web.xml文件,将index.xhtml改为欢迎页面greeting.xhtml。下面是web.xml文件的内容,注意粗体部分是要修改的:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_3_0.xsd"&
javax.faces.PROJECT_STAGE
Development
Faces Servlet
javax.faces.webapp.FacesServlet
Faces Servlet
faces/greeting.xhtml
注意参数PROJECT_STAGE的使用。这个参数主要定义JSF应用在软件生命周期中所处的阶段。不同的阶段会对其行为产生影响,例如,如果定义为开发阶段,将会为用户自动生成调试信息,如果不定义,默认是产品阶段。
构建、打包、部署以及运行猜数字这个应用例子
可以使用NetBean或Ant环境对这个例子进行构建、打包、部署以及运行。这个例子的源代码可以在tut-install/examples/web/guessnumber目录中找到。
使用NetBean环境构建、打包、部署这个例子的步骤:
1、在开始菜单中选择打开项目
2、在打开项目对话框中选择tut-install/examples/web/目录
3、选择guessnumber文件夹
4、选定打开为主项目的验证框
5、点击打开项目
6、在项目选项卡,右击guessnumber项目并选择部署
这个选项将会在GlassFish服务器上构建和部署例子程序。
使用Ant构建、打包、部署这个例子的步骤:
1、在命令行窗口,首先进入tut-install/examples/web/guessnumber/目录
2、输入命令:ant
这个命令将调用默认窗口,用于将应用创建打包至WAR文件:guessnumber.war,并在发布目录装载。
3、确定GlassFish服务器已经启动
4、通过以下命令部署:ant deploy
例子的运行:
1、打开Web浏览器
2、在浏览器中输入以下URL:来打开网页
3、在文本框中输入从0-10的数字并点击确认
此时,另外一个页面会打开,并显示你猜的数字是否正确。
4、如果猜的不对,点击返回按钮返回主页面
可以继续猜数字,直到猜正确为止。
使用Facelet模板
可以很容易的扩展和重用JSF提供的用户接口实现工具。模板是Facelet非常有用的功能,我们可以基于模板创建页面,使用模板可以实现代码重用,并解决相似结构页面重建的问题。模板的使用同时有利于提高代码的可读性。
表格5-2列出了Facelet用于模板的标签和他们的功能:
ui:component
定义向组件树创建和添加的组件
ui:composition
定义所使用的模板的页面组成。标签之外的内容将被忽略
定义向组件树创建和添加的测试组件
ui:decorate
类似于composition标签,但不忽略标签外的内容
定义使用模板插入页面的内容
i:fragment
类似于component标签,但不忽略标签外的内容
ui:include
多页面内容的封装和重用
向模板插入内容
在包含文件中传递参数
循环标签的替代,主要用于替代c:forEach或者dataTable
从页面中删除内容
表格5-2 Facelet模板标签
更多关于Facelet模板标签的信息,请参阅文档:
Facelet标签库包含了主要的模板标签ui:insert。使用这个标签创建的模板页面允许定义页面的默认结构。模板页面用作其他页面的模板,通常用于客户端页面。
下面是模板的例子:template.xhtml
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
xmlns:ui="/jsf/facelets"
xmlns:h="/jsf/html"&
Top Section
Left Section
Main Content
这个例子定义的XHTML页面分为三部分:头部,左部,主内容。每段都使用样式表渲染,应用中其他相同结构的页面都可以重用它。
客户端页面通过使用ui:composition标签调用模板,下面的例子,客户端页面templateclient.xhtml调用模板页template.xhtml。客户端页面通过ui:define标签插入内容。
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
xmlns:h="/jsf/html"&
Welcome to Template Client Page
可以使用NetBean环境创建Facelet模板和客户端页面。更多信息请参考。
JSF支持使用Facelet创建复合组件,复合组件是一种模板式的特殊组件。任何组件的本质都属于特定需要的可重用代码。例如,输入组件接收用户的输入。组件可以使用验证器、转换器和监听器来定义用到的行为。
复合组件由标记标签和已存在的组件组合组成。重用性主要体现在,用户可以创建通用个性化组件,可以像其他组件一样定义验证器、转换器和监听器等功能。
基于Facelet,包含标记标签和其他组件的XHTML页面可以转换为复合组件。在资源使用方面,复合组件可以将资源保存到本地定义的资源库中,来供应用使用。
表5-3列出了一些常用的复合标签和功能:
composite:interface
声明复合组件接口。在约定的复合功能声明基础上,复合组件可以用作单组件。
composite:implementation
定义复合组件的实现。如果有composite:interface标签,那么必须有一个与之对应的composite:implementation标签。
composite:attribute
声明复和组件实例标签用到的属性
composite:insertChildren
在composite:implementation标签内,页面包含的所有复合组件的子组件和模板文本都要进行描述。
composite:valueHolder
声明复合组件接口和实现之间的对应关系。并指定页面可以调用的对象
composite:editableValueHolder
指定页面可以调用的复合组件接口对象EditableValueHolder
composite:actionSource
指定页面可以调用的复合组件接口对象ActionSource2
表5-3 复合组件标签
有关更多Facelet复合组件标签,请参阅
下面这个例子展示了如何使用电子邮件输入复合组件来接收电子邮件地址:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
xmlns:composite="/jsf/composite"
xmlns:h="/jsf/html"&
注意定义inputText组件值时用到的cc.attrs.value,字串cc用于标识JSF的复合组件,#{cc.attrs.attribute-name}表达式用于访问复合组件接口定义的属性,在这里就是它的值。
email.xhtml例子代表的复合组件保存在resources/emcomp目录,这个目录保存在应用的Web发布目录中。这个目录会被JSF会作为参考库,访问对应的组件。更多关于资源的信息请访问“”本书123页“Web资源”。
&例子中使用复合组件的网页包含了对复合组件的引用,注意xml名字空间的声明:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
xmlns:h="/jsf/html"
xmlns:em="/jsf/composite/emcomp/"&
本地复合组件库在xml名字空间中定义,使用em:email来对自身访问,例子中的代码可以保存到Web发布目录中,名为emuserpage.xhtml。部署到服务器以后,可以通过以下地址访问:。
Web资源是所有软件都需要用到的内容,包含图片、脚本文件以及用户创建的组件库。我们必须对资源进行统一收集和存放(可以使用下列方式之一):
Web应用中打包的资源必须放在resources目录:resources/resource-identifier。
&&&&Web应用中打包的资源的classpath必须放在Web应用的META-INF/resources目录中:META-INF/
resources/resource-identifier。可以使用这种文件结构打包在JAR文件中。这种机制可以参考本书第53章。
JSF运行时将在以上列到的这些目录查找资源,资源可以用以下字符串格式标识:
[locale-prefix/][library-name/][library-version/]resource-name[/resource-version]
[]中的资源标识元素是可选的,resource-name是必须的,它通常是一个文件名。例如,通常用到的样式表、图片或者脚本可以使用library和name属性对资源进行调用,例如下面例子的标签:
这个标签指定了resources/css目录中的default.css作为样式表文件。
也可以使用下面的语法来加载图片:
这个标签将到resources/images目录中去查找wave.med.gif文件。
资源可以以库的方式加载。复合组件、模板都可以保存在资源目录,这样就实现了所有应用实例的调用以及代码重用。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。el语言语法
EL的前世今生:
EL即Expression
Language,是一种简单的数据访问语言,最初是JSTL1.0中定义的,从JSTL1.1开始,Sun公司将其从JSTL分离出来,成为JSP2.0规范中单独的一部分,并增加了很多新的特性。
最基本的应用:
等效于jsp脚本表达式:&%= pageContext.findAttribute(“user”)
访问javaBean中的属性对象中的属性:
${lesson.student.id}
访问有序集合中的元素:
${teacherIds[2]}
执行基本的关系运算、逻辑运算和算术运算:
${1 & (5 / 2)}
输出结果:false
使用自定义函数完成一些复杂功能
${xyz:filter(“&img/&”)}
其中,xyz:filter是自定义函数,“&img/&”是传递给这个自定义函数的参数
在EL表达式中使用一些列隐含对象:
如:pageContext、cookie
在页面上输出”${“:
“\” + “$”,即”\${xyz}”可以输出” ${xyz}”
另外,${“${”}可以输出”${”
忽略页面中所有的EL表达式:
&%@ page isELIgnored=”true” %&
EL的基本语法:
标识符(变量和自定义函数名称):有任意顺序的大小写字母、数值、下划线组成,不能以数值开头,不能使用EL中的保留字,布恩那个使用EL隐含对象的标识符,不能使用的符号:单引号,双引号,减号,正斜杠(/)
保留字:and,eq,or等
EL中的常量:
&&&&&&&&&&&&&&&&&&
布尔:true/false
&&&&&&&&&&&&&&&&&&
整形:与java中的十进制整形常量相同
&&&&&&&&&&&&&&&&&&
浮点数:取值范围同Double,可以使用指数形式(如1.2E4)
&&&&&&&&&&&&&&&&&&
字符串:用单引号双引号引起来的一连串的字符
&&&&&&&&&&&&&&&&&&&&&&&&&&&
关于内部单/双引号的转义(\)规则:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
只有用单引号引起来的字符串,内部的单引号才需要转义,双引号不需要转义
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
同理,只有双引号…
&&&&&&&&&&&&&&&&&&
EL中的变量:
&&&&&&&&&&&&&&&&&&
El表达式语言的核心概念就是将变量映射到一个对象上,其中的变量不用先定义,而是直接使用,EL
API中定义了javax.servlet.jsp.el.VariableResolver类来将一个变量名映射到某个对象上,他实现了隐含对象的映射,还实现了非隐含对象的变量标识符与各个域范围内的属性值的映射。
&&&&&&&&&&&&&&&&&&&&&&&&&&&
如果EL表达式中包含变量名不对应EL隐含对象的标识符,则EL引擎将调用pageContext.findAttribute()方法在各个域中(page,request,session,applecation)依次查找变量名的属性值,如果找到这个属性,则返回找到的属性值,如果没有找到,则返回null。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。netbeans用el语法要引入什么包_百度知道
netbeans用el语法要引入什么包
这是一道待解决的难题
您的回答被采纳后将获得系统奖励20(财富值+经验值)+难题奖励30(财富值+经验值)
我有更好的答案
按默认排序
..如认可我的回答,手机提问的朋友在客户端右上角评价点满意即可,右击Libraries,互相帮助,请点击采纳为满意回答按钮;Folder,再选 Add JAR&#47打开你的项目.就可以把你的包加进来了答题不易
其他类似问题
netbeans的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁豆丁精品文档: el表达式运算 el 表达式 三目运算 正则表达式语法 php正则表达式语..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
EL表达式、语法及运算
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 netbeans jar包 的文章

 

随机推荐