`
wjn811
  • 浏览: 7005 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

还是一个JSF页面间传递参数的问题

阅读更多
大家好,本人初学JSF。最近在做一个项目的时候(很小的新闻发布系统,只是为了学习),遇到了点问题。希望大家不吝赐教。

有一个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的更新(可能是这样)

网上搜了一下
觉得可能的结果是这样:

引用

利用ManageredBean的ManagerdProperty的值注入。包括注入Request参数 如#{parap.name}.在get或Set某一属性时,依据传递的参数来初始化数据。
(在set某个属性时初始化,容易产生有些属性还没有被注入初始化,而在get某个属性时初始化数据,又有可能该属性未被调用,则无法完成初始化工作了。)


另外我也看了tbuy论坛的实现,发现它好像是通过解析URL实现的,不过我感觉有2个参数的话会比较麻烦(它的好像只有1个参数)

不知道我是不是表示清楚了,呵呵。我想请问大家如何解决这样的问题。
也可以说:如何在页面间传递参数?

最重要的一点是:我想用户再次访问时可以通过直接使用URL的方式访问
另外本人使用的是JSF RI 1.2 + tomahawk

感谢大家关注我的问题,希望尽快得到大家的回复
谢谢了!
分享到:
评论
1 楼 wjn811 2008-03-16  
回复自己  呵呵
发现自己逻辑写错了
难怪总是得到相同的值

相关推荐

Global site tag (gtag.js) - Google Analytics