zoukankan      html  css  js  c++  java
  • JSF通过超链接传递参数到控制层

    JSF通过超链接传输数据到控制层可以分为三个步骤:

      1.首先将数据加入到超链接中。通过<h:link>标签加入一个超链接,然后加入<f:param>标签加入参数。示例代码如下:

    1 <h:link outcome="next.xhtml">
    2     跳转
    3     <f:param name="id" value="2"/>
    4 </h:link>

    其中name和value会出现在url上,组成类似于"next.xhtml?id=2"这样的key-value形式。

      2.跳转后的页面接收数据,next.html可以这样写,示例代码如下:

    1 <f:metadata> 
    2     <f:viewParam name="id" value="#{bean.id}" />
    3     <f:event listener="#{bean.init}" type="javax.faces.event.PreRenderViewEvent"></f:event>
    4 </f:metadata>

      这段代码写在html页面命名空间之后,其中name和value和超链接一样的关联起来,value对应bean里面的一个属性。<f:event>为页面初始化参数,listener对应要初始化的方法,type是事件类型,例子中的是页面渲染之前的事件类型。具体类型API提到以下几种类型:

    value for "type" tag attribute        Type of event sent to listener method
    preRenderComponent                    javax.faces.event.PreRenderComponentEvent
    preRenderView                         javax.faces.event.PreRenderViewEvent 
    postAddToView                         javax.faces.event.PostAddToViewEvent 
    preValidate                           javax.faces.event.PreValidateEvent 
    postValidate                          javax.faces.event.PostValidateEvent

      3.页面跳转之后,html中也已经接收到,最终要传递到控制层中的,控制层中接收很简单,只需要对应页面中<f:viewParam>中value的数据就行,在bean中声明该数据,并生成get和set方法即可。此处省略bean中的代码了。

      总结起来就这3步,控制层中即可获取到超链接中传递的参数了。

  • 相关阅读:
    【原创】ASP.NET Web开发,实现打印Log日志,步骤详解
    [原创] ASP.NET WEBAPI 接入微信公众平台 总结,Token验证失败解决办法
    Mac安装Linux
    mac下终端的一些命令
    《Python程序设计》题库--摘
    Day 28 类的用法延伸
    Day 27 面向对象补充
    Day 24~26 类,面向对象,属性
    Q 91~100
    Q 81~90
  • 原文地址:https://www.cnblogs.com/bigbang92/p/jsf_link-param.html
Copyright © 2011-2022 走看看