0

当我使用

<h:button>

或者

<h:link>

我不能在托管 bean 中进行任何业务操作?我必须使用

<h:form>

<h:commandButton>

或者

<h:commandLink>

使用动作参数还是有其他解决方案?

4

2 回答 2

2

取决于您要触发的请求类型。

如果它需要是一个非幂等的 POST 请求,只需使用<h:form>with <h:commandXxx action>。再次根据具体的功能要求,您可以在同一视图中有条件地渲染结果,或者之后将重定向发送到目标视图。

如果它需要是幂等的 GET 请求,请使用<h:link>/<h:button>并在@PostConstruct与目标页面关联的请求/视图范围的支持 bean 中执行方法中的操作。如果您需要传递参数,请使用在/<f:param>上设置它们,并在目标视图中使用和在与目标视图关联的支持bean中设置和处理它们。<h:link><h:button><f:viewParam><f:event type="preRenderView">

总而言之,只需按照具体的功能要求(不幸的是,您在问题中没有说明任何内容)为工作使用正确的工具。

也可以看看:

于 2013-09-06T16:59:41.603 回答
0

不,您不能使用h:linkor来做到这一点h:button,这意味着有可收藏的 GET url。因此,如果要执行业务操作,则需要使用commandButtoncommandLink。请注意,它也值得h:outputLink用于在页面之间生成可收藏的链接,因为它对 SEO 更加友好。

于 2013-09-06T16:57:21.950 回答