当我使用
时<h:button>
或
<h:link>
我无法在托管bean中进行任何业务操作? 我必须使用
<h:form>
和
<h:commandButton>
或
<h:commandLink>
有行动参数还是有另一种解决方案?
答案 0 :(得分:2)
取决于你想要解雇的那种请求。
如果需要是非幂等POST请求,只需将<h:form>
与<h:commandXxx action>
一起使用即可。同样,根据具体的功能要求,您可以在同一视图中有条件地呈现结果,或者之后将重定向发送到目标视图。
如果它需要是幂等GET请求,请使用<h:link>
/ <h:button>
并在与目标页面关联的请求/视图作用域支持bean中的@PostConstruct
方法中执行操作。如果您需要传递参数,请使用<f:param>
在<h:link>
/ <h:button>
上设置它们,并在目标视图中使用<f:viewParam>
和<f:event type="preRenderView">
来设置和处理它们支持与目标视图关联的bean。
总而言之,只需使用正确的工具来完成具体功能要求所规定的工作(遗憾的是,您在问题中没有说明任何内容)。
答案 1 :(得分:0)
不,你不能用h:link
或h:button
做到这一点,有意为可收藏的GET网址。因此,如果您要执行业务操作,则需要使用commandButton
或commandLink
。请注意,使用h:outputLink
生成页面之间的可书签链接也是值得的,因为它更适合搜索引擎优化。