大家好,本人初学JSF。最近在做一个项目的时候(很小的新闻发布系统,只是为了学习),遇到了点问题。希望大家不吝赐教。
有一个A页面(导航用的,datatable做的),B页面包含A,并且有自己的内容(该内容依赖于点击A页面条目所产生的参数)。
我不知道jsf应该怎么样做,我的想法是这样的。用h:outputLink+(2个)f:param做。而f:param的value是值绑定的。
代码如下
这样我想就可以根据不同的内容设置不同的id了
然后在managedbean中用#{param.smallclassid}获取参数
结果发现f:param不能传递正确的值(他总是传递第一次请求该页面的值)。
我自己觉得可能是这样的原因:f:param中的value设定早于smallclassList的更新(可能是这样)
网上搜了一下
觉得可能的结果是这样:
[quote]
利用ManageredBean的ManagerdProperty的值注入。包括注入Request参数 如#{parap.name}.在get或Set某一属性时,依据传递的参数来初始化数据。
(在set某个属性时初始化,容易产生有些属性还没有被注入初始化,而在get某个属性时初始化数据,又有可能该属性未被调用,则无法完成初始化工作了。)
[/quote]
另外我也看了tbuy论坛的实现,发现它好像是通过解析URL实现的,不过我感觉有2个参数的话会比较麻烦(它的好像只有1个参数)
不知道我是不是表示清楚了,呵呵。我想请问大家如何解决这样的问题。
也可以说:如何在页面间传递参数?
最重要的一点是:[color=red]我想用户再次访问时可以通过直接使用URL的方式访问[/color]
另外本人使用的是JSF RI 1.2 + tomahawk
感谢大家关注我的问题,希望尽快得到大家的回复
谢谢了!
有一个A页面(导航用的,datatable做的),B页面包含A,并且有自己的内容(该内容依赖于点击A页面条目所产生的参数)。
我不知道jsf应该怎么样做,我的想法是这样的。用h:outputLink+(2个)f:param做。而f:param的value是值绑定的。
代码如下
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/web/newslist.faces">
<h:outputText value="#{smallclassList.smallclassname}"/>
<f:param name="bigclassid" value="#{smallclassList.bigclassid}"></f:param>
<f:param name="smallclassid" value="#{smallclassList.smallclassid}"></f:param>
</h:outputLink>
这样我想就可以根据不同的内容设置不同的id了
然后在managedbean中用#{param.smallclassid}获取参数
结果发现f:param不能传递正确的值(他总是传递第一次请求该页面的值)。
我自己觉得可能是这样的原因:f:param中的value设定早于smallclassList的更新(可能是这样)
网上搜了一下
觉得可能的结果是这样:
[quote]
利用ManageredBean的ManagerdProperty的值注入。包括注入Request参数 如#{parap.name}.在get或Set某一属性时,依据传递的参数来初始化数据。
(在set某个属性时初始化,容易产生有些属性还没有被注入初始化,而在get某个属性时初始化数据,又有可能该属性未被调用,则无法完成初始化工作了。)
[/quote]
另外我也看了tbuy论坛的实现,发现它好像是通过解析URL实现的,不过我感觉有2个参数的话会比较麻烦(它的好像只有1个参数)
不知道我是不是表示清楚了,呵呵。我想请问大家如何解决这样的问题。
也可以说:如何在页面间传递参数?
最重要的一点是:[color=red]我想用户再次访问时可以通过直接使用URL的方式访问[/color]
另外本人使用的是JSF RI 1.2 + tomahawk
感谢大家关注我的问题,希望尽快得到大家的回复
谢谢了!