`

JSF问题集

阅读更多
如何使用URL字符串来传递参数到JSF程序中?

如果你有下面的URL: http://your_server/your_app/product.jsf?id=777, 你可以使用下面的代码来访问所传递的参数nbsp; 
FacesContext fc = FacesContext.getCurrentInstance();
String id = (String) fc.getExternalContext().getRequestParameterMap().get("id";

在JSF页面上,你也可以使用预定义的变量访问同样的参数,例如nbsp; 
<h:outputText value="#{param['id']}" />
注意: 你必须直接调用该JSF页面,并且使用servlet 映射 (mapping).


如何添加上下文路径到outputLink的URL中?
在当前的JSF实现中,当在outputLink 中定义的路径以'/'开始时,没有添加上下文路径到URL中,要弥补该问题请在URL中使用 #{facesContext.externalContext.requestContextPath} 前缀.例如:
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/myPage.faces">

如何从backing bean中得到当前页面的URL?
你可以通过FacesContext得到一个Http Request对象的引用,如下:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();

然后使用普通的request方法来得到路径信息.还可以使用另外一种方法:
context.getViewRoot().getViewId();
将返回你当前JSP(JSF view IDs 基本上只是JSP path names)页面的名字.


如何结束session?
你可以使用session的 invalidate方法 .
下面是一个从action方法中结束session的例子: :
public String logout() {

  FacesContext fc = FacesContext.getCurrentInstance();
  HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
  session.invalidate();
  return "login_page";
}


下面的代码片段示例了如何在JSP页面中结束session:

<% session.invalidate(); %><c:redirect url="loginPage.jsf" />
  

当用户点击Command Link后如何显示确认对话框?  
h:commandLink指定了 onclick 属性为内部使用. 因此你不可以使用她了, 该问题已经在JSF1.2中修复了,对于JSF1.2以前的版本,你可以在onclick以前使用  onmousedown 事件
<script  language="javascript">
function ConfirmDelete(link) { 
  var delete = confirm('Do you want to Delete?'; 
  if (delete == true) {  
   link.onclick(); 
  }
  }
</script>


<h:commandLink action="delete" >  <h:outputText value="delete it"/></h:commandLink>

如何在另外一个managed-bean 中访问一个managed-bean ?
有3种方法可以达到该目的: 使用值绑定 使用变量监视器:Using Variable Resolver 持有引用属性:Having the reference property 例如,在 faces-config.xml中有下面的声明
<managed-bean>
  <managed-bean-name>person</managed-bean-name>
<managed-bean-class>demo.PersonBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
<managed-bean>
<managed-bean>
  <managed-bean-name>bank</managed-bean-name>
<managed-bean-class>demo.BankBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
<managed-bean>

并且你想在Person中访问Bank
使用值绑定,代码如下:

FacesContext fc = FacesContext.getCurrentInstance();

BankBean bank = (BankBean) fc.getApplication().createValueBinding("#{bank}".getValue(fc);

使用变量监视器的代码如下: Variable Resolver:

FacesContext fc = FacesContext.getCurrentInstance();

BankBean bank = (BankBean) fc.getApplication().getVariableResolver().resolveVariable(fc, "bank";

在上面的两种方法中,第二个 managed-bean (bank)的名字被硬编码在java代码中.如果你不想硬编码你可以在managed bean声明中引用另外一个bean:
<managed-bean>
  <managed-bean-name>Person</managed-bean-name>
<managed-bean-class>demo.PersonBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
  <managed-property>
  <property-name>bank</property-name>
   <property-class>demo.BankBean</property-class>
   <value>#{bank}</value>
</managed-property>
<managed-bean>
<managed-bean> 
<managed-bean-name>bank</managed-bean-name>
<managed-bean-class>demo.BankBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-bean>
分享到:
评论

相关推荐

    jstl jsf包合集

    综上所述,这个"jstl jsf包合集"是用于开发基于Java EE平台的Web应用的理想工具集,它提供了JSTL标签库以简化JSP页面的编写,并且包含了JSF的API和实现,使得构建用户界面更加高效。结合这两个技术,开发者可以构建...

    jsf 电子书合集(来源于网络)

    12. **错误处理和调试**:学习如何处理JSF应用中出现的常见问题,以及调试技巧。 13. **JSF与MVC模式**:深入理解MVC模式在JSF中的应用,以及它与其他MVC框架(如Spring MVC)的对比。 14. **JSF的未来和版本更新*...

    JSF中文问题解决方法完整版

    1. **字符编码问题**:JSF应用中出现中文乱码通常与字符集有关。UTF-8是现在最广泛使用的编码格式,确保整个项目从服务器配置、Web.xml、页面元标签到数据库都统一使用UTF-8编码,可以避免大部分中文乱码问题。 2. ...

    jsf分页 jsf分页 jsf分页

    当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个部分,每次只加载一部分到页面上,使用户能够逐步浏览数据。下面我们将深入探讨JSF中的分页实现。 ...

    JSF教程合集

    **JSF(JavaServer Faces)**是Java平台上的一种用于构建用户界面的Web应用程序框架,它为开发者提供了构建可重用的UI组件、处理用户事件、管理应用程序状态以及与后端数据源交互的能力。本教程合集是针对JSF技术的...

    JSF实用标签集大全

    JSF标签集大全挺好的 !!!!!!!!!!!!

    jsf

    此外,Mojarra和MyFaces是两个流行的JSF实现,它们提供了不同的特性集和扩展选项。 **JSF使用.ppt**这个文件名可能是关于JSF使用的一份PPT教程或演示文稿,通常会涵盖以下内容: 1. **JSF架构**:介绍JSF的基本...

    IBM JSF学习资料

    本资料集主要针对IBM的JSF实现进行深入探讨,适合对Java Web开发感兴趣的初学者以及有一定经验的开发者。 **1. JSF基础知识** JSF的核心概念是组件,这些组件可以像HTML元素一样在页面上进行组合和布局。每个组件都...

    JSF 核心编程与入门

    总的来说,JSF为Java Web开发提供了一个强大的工具集,通过组件化和声明式编程,降低了开发复杂性,提升了开发效率。无论是初学者还是经验丰富的开发者,都可以通过深入学习JSF来提升其Web应用程序开发技能。

    jsf+facelets+ajax4jsf的全部jar包

    JavaScript Server Faces(JSF)是Java平台上...总之,"jsf+facelets+ajax4jsf"的组合提供了一个强大的工具集,用于构建功能丰富、响应迅速的Java Web应用。理解并熟练掌握这些技术,可以显著提升开发效率和应用质量。

    jsf 中文帮助文档

    最后,**富客户端组件(Rich Client Components)** 如PrimeFaces、IceFaces等库为JSF提供了更丰富的用户体验,它们扩展了JSF的基本组件集,提供了许多交互性和视觉效果良好的控件。 总的来说,JSF中文帮助文档涵盖...

    JSF控件详细说明

    5. **数据展示控件**:如`&lt;h:dataTable&gt;`用于显示数据集,`&lt;p:growl&gt;`用于显示消息提示。 ### JSF控件属性 每个JSF控件都有若干属性,这些属性定义了控件的行为和外观。例如,`&lt;h:inputText&gt;`的`value`属性用于...

    jsf入门(pdf格式)

    例如,`&lt;h:outputText&gt;`用于显示静态或动态文本,`&lt;h:inputTextarea&gt;`用于创建多行文本输入,而`&lt;h:dataTable&gt;`则用于显示数据集。 入门JSF,你需要了解以下几点: 1. **环境配置**:设置Java环境,安装Java SDK,...

    jsf组件树相关资料

    例如,如果要在表格中根据数据动态生成行,可以在迭代数据集时创建并添加`&lt;h:outputText&gt;`或`&lt;h:commandLink&gt;`等组件。 **JSF生命周期与组件树** JSF有六个主要阶段:恢复视图、应用请求值、处理验证、更新模型值、...

    jsf添加修改删除程序

    JDBC是Java连接数据库的标准接口,用于执行SQL语句和处理结果集。 9. **NetBeans IDE**:NetBeans是开发Java应用的集成开发环境(IDE),支持JSF项目创建和调试。在"jsf添加修改删除程序"中,开发人员可能使用...

    jsf+javabean+jdbc完成对表增删查改

    然后遍历结果集,将数据填充到JavaBean中,最后由JSF组件显示在页面上。 4. **修改(Update)**:当用户修改数据后,更新JavaBean中的属性,构建UPDATE SQL语句,通过`executeUpdate()`方法执行更新操作。 在实际...

    ajax4jsf使用中文手册

    这使得开发者可以选择最适合他们需求的组件集,同时享受Ajax4JSF带来的便利。 ### 6. Ajax4JSF的行为和事件 Ajax4JSF的行为(Behaviors)定义了如何响应用户事件,而事件(Events)则是行为触发的结果。例如,`a4j...

    JSF学习代码

    5. **分页(Pagination)**:在**"JSF 分页学习代码"**标签下,可能包含了一个示例,展示如何在JSF应用中实现数据的分页显示,这通常涉及到对大量数据集的处理和展示策略。 6. **JSF与Spring、Hibernate集成**:在`...

    JSF-UIREPEAT

    这使得开发者可以轻松地将数据集与UI元素绑定,实现数据的遍历和展示。 **JSF组件模型** 基于组件树的概念,每个组件都有自己的属性、事件和行为。UIRepeat作为容器组件,可以包含其他JSF组件,如`h:outputText`、`...

    jsf2.1demo

    在组件库方面,JSF 2.1提供了一个丰富的标准组件集,包括表格、输入框、按钮等,这些组件可以直接在Facelets模板中使用。此外,JSF 2.1还支持自定义组件,开发者可以创建自己的UI组件库来满足特定需求。 在依赖注入...

Global site tag (gtag.js) - Google Analytics