comanndButton和commandLink:
h:commandButton
可以提交表单,但不能传递参数
h:commandLink
可以提交表单,又能传递参数,但是以链接的形式展现
commandLink必须要在一个from中。
comanndButton和commandLink要在一个from中才能提交表单内容。
会发送回本页面,并触发JSF的生命周期,比如:重建组件树、应用请求值等,因此,允许设置actionListener和action属性,这样他们可以很轻松完成强大的功能。
- <h:commandButton actionListener="#{actionListener.check}"; value="送出"; action="#{user.check}" />
<h:commandButton actionListener="#{actionListener.check}"; value="送出"; action="#{user.check}" />
actionListener 响应的一个事件,当然这个和js中的事件不一样.actionListener="#{actionListener.check}"响应的是服务器端的事件actionListener类的check方法.
action 用过STRUTS的都知道,提交后执行的方法.当然在SRTUTS中action="URL",而这里是一个user类的check方法.
不足在于:如果重建组件树的成本比较高(比如:当前页面显示一个数据表格),而这些组件对于即将跳转到的页面没什么用时,就应该考虑使用outputLink了。
- <h:commandLink action="#{user.testLink}"><f:verbatim>增加</f:verbatim></h:commandLink>
<h:commandLink action="#{user.testLink}"><f:verbatim>增加</f:verbatim></h:commandLink>
另外:如果需要传递参数<f:param.../>,使用commandLink
在action或actionListener中获取<f:param.../>:
- FacesContext ctx = FacesContext.getCurrentInstance();
- int productId = Integer.parseInt((String)ctx.getExternalContext().getRequestParameterMap().get("productId"));
FacesContext ctx = FacesContext.getCurrentInstance();
int productId = Integer.parseInt((String)ctx.getExternalContext().getRequestParameterMap().get("productId"));
outputLink
比起前两个来说,他相当的轻量级了。他会直接产生一个<a href=""></a>链接,跳转到相应的页面,因此没有进入JSF生命周期的额外开销,跟我们直接写一个html的链接没什么区别。
如果需要传递参数,嵌入<f:param name="a" value="b"/>就可以了,当然这里的value可以用表达式来表示,比如value="#{param.productId}",用起来是相当方便的。
- <h:outputLink value="productEdit.faces">
- <h:outputText value="编辑"/>
- <f:param name="productId" value="#{item.productId}"/>
- </h:outputLink>
<h:outputLink value="productEdit.faces">
<h:outputText value="编辑"/>
<f:param name="productId" value="#{item.productId}"/>
</h:outputLink>
其效果为<a href="..jsf?productId=..."></a>
h:commandButton、h:commandLink 和h:outputLink的差别在于:h:outputLink没有进入JSF的生命周期,而h:commandLink和h:commandButton都要进入JSF的生命周期.
分享到:
相关推荐
使用方法 1、在backing bean的方法中调用函数1即可。如Abean中download方法调用了该方法,前台可以这样调用: <h:commandButton value="download" action="#{aBean.download}"></h:commandButton> 或者 <h:...
深入讨论JSF中Tree2组件使用方法。
Ajax4jsf 用户指南 目录 1. 介绍 2. 开始使用 Ajax4jsf 环境需求 下载 Ajax4jsf 安装 简单的 AJAX Echo 项目 JSP 页面 数据 Bean faces-config.xml Web.xml 部署 3. Ajax4jsf 框架的基本概念 ...
jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF
jsf小例子jsf小例子jsf小例子jsf小例子jsf小例子jsf小例子jsf小例子jsf小例子jsf小例子
JSF是一种用于构建Java ... 包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 Java Server Faces技术的重要开发框架 sun-ri、myfaces、icefaces、richfaces、seam
jsf 分页 jsf 分页 jsf 分页 jsf 分页
《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF...
JSF中文教程JSF中文教程JSF中文教程JSF中文教程
这里是jsf的tags的书籍。主要讲述jsf的用法。
主要讲述JSF的工作方式 JSF的工作方式 JSF架构 JSF模型 JSF事件类型
JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍
第一个JSF程序,初学JSF者必备,jsf架包 jsf实例
2. 开始使用Ajax4jsf 环境需求 下载Ajax4jsf 安装 简单的 AJAX Echo 项目 JSP 页面 数据 Bean faces-config.xml Web.xml 部署 3. Ajax4jsf 框架的基本概念 介绍 结构概览 如何做... 发送一个AJAX 请求 ...
jsf1.2 core jsf jsf核心
================================= JSF开发必备JAR ================================= <br>《JSF入门简单中文版》开篇提到JSF开发需要的jar,' 但是按其中提供的方法: <br>jstl.jar 与 ...
jsf 视频 java faces jsf 视频 java faces jsf 视频 java faces
JSF入门教程 JSF入门教程 JSF入门教程
jsf 中文文档jsf 中文文档jsf 中文文档jsf 中文文档
JSF的学习入门知识教程,里面有例子还有各个标签的使用及属性介绍