Jsf 使用<;h:按钮>&书信电报;h:link>;与管理豆

Jsf 使用<;h:按钮>&书信电报;h:link>;与管理豆,jsf,jsf-2,javabeans,Jsf,Jsf 2,Javabeans,当我使用 <h:button> 或 我不能在托管bean中进行任何业务操作? 我必须使用吗 <h:form> 及 或 使用action param或有其他解决方案吗?不,您不能使用h:link或h:button来实现这一点,这意味着可以使用书签获取URL。因此,如果要执行业务操作,需要使用commandButton或commandLink。请注意,使用h:outputLink在页面之间生成可书签链接也是值得的,因为它对SEO更加友好。取决于您希望发

当我使用

<h:button>


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

<h:form>




使用action param或有其他解决方案吗?

不,您不能使用
h:link
h:button
来实现这一点,这意味着可以使用书签获取URL。因此,如果要执行业务操作,需要使用
commandButton
commandLink
。请注意,使用
h:outputLink
在页面之间生成可书签链接也是值得的,因为它对SEO更加友好。

取决于您希望发出的请求类型

如果需要非幂等POST请求,只需将
一起使用即可。同样,根据具体的功能需求,您可以在同一视图中有条件地呈现结果,或者在之后向目标视图发送重定向

如果它需要是一个幂等GET请求,请使用
/
并在与目标页面关联的请求/查看范围的支持bean中执行
@PostConstruct
方法中的操作。如果需要传递参数,请使用
/
上设置参数,并在目标视图中使用
在与目标视图关联的备份bean中设置和处理参数

总而言之,只需根据具体的功能需求(遗憾的是,您在问题中没有告诉任何内容)为工作使用正确的工具即可

另见:

我想通过
FacesContext.getCurrentInstance().getExternalContext().invalidateSession()使会话无效那么哪种方法更适合于此?这显然需要是一个非幂等POST请求(您不希望能够对其进行书签/共享/刷新,对吗?)。使用命令按钮/链接,然后将重定向发送到主页。另见
<h:form>
<h:commandButton>
<h:commandLink>