JSF 中的输出和命令 Link
Output and Command Link in one in JSF
是否可以在同一命令中同时使用结果和操作link?
我试过了
<h:commandLink outcome="page?faces-redirect=true"
value="Got to Page"
action="#{Bean.setValue("...")}" />
但它忽略了结果。
我有一个 table 数据如下:
ID 名称 其他 Link 到下一页
所以我想给下一页提供ID,以显示属于之前所选ID的数据...我怎么能实现这一点?
你可以使用 <f:setPropertyActionListener>
.
<h:commandLink value="Edit" action="edit?faces-redirect=true">
<f:setPropertyActionListener target="#{bean.id}" value="#{id}" />
</h:commandLink>
或者您可以滥用 actionListener
。
<h:commandLink value="Edit" action="edit?faces-redirect=true"
actionListener="#{bean.setId(id)}" />
然而,这两种方式都需要一个会话范围的 bean 来记住所选择的 id
,这很尴尬。当您在不同的浏览器选项卡中多次打开此类 link,然后在每个选项卡上进行交互时,该网站的行为将非常不直观且令人困惑。
规范的方法是将其作为 GET 参数传递。
<h:link value="Edit" outcome="edit">
<f:param name="id" value="#{id}" />
</h:link>
目标页面可以通过 <f:viewParam>
获取它,并在必要时通过 <f:viewAction>
在其上调用业务操作。
另请参阅:
- Creating master-detail pages for entities, how to link them and which bean scope to choose
是否可以在同一命令中同时使用结果和操作link?
我试过了
<h:commandLink outcome="page?faces-redirect=true"
value="Got to Page"
action="#{Bean.setValue("...")}" />
但它忽略了结果。
我有一个 table 数据如下: ID 名称 其他 Link 到下一页
所以我想给下一页提供ID,以显示属于之前所选ID的数据...我怎么能实现这一点?
你可以使用 <f:setPropertyActionListener>
.
<h:commandLink value="Edit" action="edit?faces-redirect=true">
<f:setPropertyActionListener target="#{bean.id}" value="#{id}" />
</h:commandLink>
或者您可以滥用 actionListener
。
<h:commandLink value="Edit" action="edit?faces-redirect=true"
actionListener="#{bean.setId(id)}" />
然而,这两种方式都需要一个会话范围的 bean 来记住所选择的 id
,这很尴尬。当您在不同的浏览器选项卡中多次打开此类 link,然后在每个选项卡上进行交互时,该网站的行为将非常不直观且令人困惑。
规范的方法是将其作为 GET 参数传递。
<h:link value="Edit" outcome="edit">
<f:param name="id" value="#{id}" />
</h:link>
目标页面可以通过 <f:viewParam>
获取它,并在必要时通过 <f:viewAction>
在其上调用业务操作。
另请参阅:
- Creating master-detail pages for entities, how to link them and which bean scope to choose