JSF中的commandButton、commandLink、outputLink用法

先说 comanndButton和commandLink: 
commandLink必须要在一个from中。 
comanndButton和commandLink要在一个form中才能提交表单内容。 
会发送回本页面,并触发JSF的生命周期,比如:重建组件树、应用请求值等,因此,允许设置actionListener
和action属性,这样他们可以很轻松完成强大的功能。 
 actionListener 响应的一个事件,当然这个和js中的事件不一样.actionListener="#{actionListener.check}"
响应的是服务器端的事件actionListener类的check方法. 
action 用过STRUTS的都知道,提交后执行的方法.当然在SRTUTS中action="URL",而这里是一个user
类的check方法. 
不足在于:如果重建组件树的成本比较高(比如:当前页面显示一个数据表格),而这些组件对于即将跳
转到的页面没什么用时,就应该考虑使用outputLink了。  
ADD 另外:如果需要传递参数,使用commandLink 在action或actionListener中获取:  
方法一: 
                     ADD 
                 
     public void testLink() 
        System.out.println(" ==========testLink============= ");         FacesContext ctx FacesContext.getCurrentInstance(); 
        int productId 

 

 


Integer.parseInt((String)ctx.getExternalContext().getRequestParameterMap().get("productId"));  
             方法二 
                  
                 
  
public void methodLink(ActionEvent event) 
        System.out.println(" ==========methodLink============= "); 
        UICommand source (UICommand) (event.getSource()); 
        for(int i=0;i
                String parameter (String) (((UIParameter) (source.getChildren().get(i))) 
                        .getValue()); 
                System.out.println(" ==========parameter============ parameter); 
                                 
另外方法二不但可以在中使用,还可以在,等标
签中使用,有兴趣的可以尝试一下。效果蛮好!! 
 
最后来看outputLink标签  
比起前两个来说,他相当的轻量级了。他会直接产生一个链接,跳转到相应的页面,因此
没有进入JSF生命周期的额外开销,跟我们直接写一个html的链接没什么区别。 
如果需要传递参数,嵌入就可以了,当然这里的value可以用表达式来表
示,比如value="#{param.productId}",用起来是相当方便的。  
  
  
  
  
其效果为 
h:commandButton、h:commandLink 和h:outputLink的差别在于:h:outputLink没有进入JSF的生命周期,
而h:commandLink和h:commandButton都要进入JSF的生命周期. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值