JSF技术详解:从ViewID到导航与EL表达式

需积分: 1 0 下载量 176 浏览量 更新于2024-09-17 2 收藏 17KB DOCX 举报
"这是一份关于JSF(JavaServer Faces)的优质笔记,涵盖了JSF的基础概念、视图标识、导航规则、表达式语言(EL)以及JSF的隐含对象等核心知识点。" JSF(JavaServer Faces)是Java平台上用于构建用户界面的Web框架,它简化了开发人员创建动态、数据驱动的Web应用程序的过程。以下是笔记中的关键点: 1. 视图标识(View ID):在JSF中,ViewID是从Web应用的环境相对路径开始计算,并以`/`开头。例如,如果你请求`/pages/index.faces`,JSF将会将其解析为`/pages/index.jsp`作为view-id。在配置文件`faces-config.xml`中,指定`to-view-id`时无需包含工程名,如`<to-view-id>/index</to-view-id>`。 2. 导航规则:默认情况下,JSF在页面间导航采用forward方式,即在服务器端完成页面切换。若需实现客户端重定向(redirect),可以在`<navigation-case>`内添加`<redirect/>`元素,例如: ```xml <navigation-rule> <from-view-id>/pages/index.jsp</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/pages/welcome.jsp</to-view-id> <redirect/> </navigation-case> </navigation-rule> ``` 这样当`from-outcome`匹配时,JSF会向浏览器发送redirect响应头,引导浏览器发起新的请求。 3. 表达式语言(JSFEL):JSFEL是以`#{}`包裹变量或表达式的,如`#{someBeanName}`,用于访问Bean属性或其他数据源。 4. EL隐含对象:EL提供了预定义的隐含对象,比如`param`,它代表HTTP请求的所有参数,是一个`Map`对象。JSF的隐含对象与JSP的类似,但有一些调整,例如移除了`pageScope`和`pageContext`,增加了`facesContext`(对应`javax.faces.context.FacesContext`)和`view`(对应`javax.faces.component.UIViewRoot`)。 5. 输出文本:在JSF中,如果要显示字符串,应使用单引号或双引号将其包围,避免被解析为变量,如`<h:outputText value="#{'This is a test'}"/>`。 6. 变量命名注意事项:在JSF中声明变量时,应避免使用与JSF保留字或关键字相同的名称,如`true`, `false`, `null`, `div`, `m`等。 这份笔记对于理解和掌握JSF的基本操作非常有帮助,包括视图管理、导航控制、EL表达式以及如何有效地利用JSF提供的隐含对象进行开发。通过学习这些要点,开发者可以更高效地构建基于JSF的Web应用程序。