日期:2014-05-18  浏览次数:20663 次

JSF(myfaces1.1.5)页面之间传值时值丢失是为什么?用的是<f:param/>标签
JSF(myfaces1.1.5)页面之间传值时值丢失是为什么?用的是<f:param/>标签

<h:dataTable var="item" value="#{list}">
<h:column>
  <f:facet>
  <h:commandButton action="#{xxxx.yyyy}">
  <f:param name="id" value="item.id"/>
  </h:commandButton>
  </f:facet>
</h:comlumn>

问题:
1.最先遇到的是<h:commandButton/>放在<h:dataTable/>中失效的问题,后来不知为什么就OK了,至今不知原因.
2.现在遇到的是<f:param/>传参时,在FacesContext.getInstance().getExtentionInstance().getRequestParameterMap.get("id")中却取不到,得到的值是null,怎么样才能取得值呢?以前做的时候都很正常的,现在觉得这个问题很莫名.为什么?怎么解决?

------解决方案--------------------
1.你的第一个问题还能重现吗?可以是你以前不知道哪写错误了吧
2.commandButton就是不能传递<f:param/ >的值,你以前不可以传成功过。
可以是jsf的bug吧,你什么时候能传的时候告诉我一声。
解决方法:
你可以使用commandLink进行<f:param/ >的传值
解决了就结贴给分吧