gpt4 book ai didi

java - 如何解决 "throw"JSF2 404 错误?

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:06 26 4
gpt4 key购买 nike

假设我有一个管理用户的应用程序。您可以添加新用户、删除他们、编辑详细信息等。每个用户都有一个 ID 并且在 URL 上有详细信息页面,如下所示:

..../user/detail.jsf?id=123

现在,如果 ID 为 123 的用户不存在怎么办?我认为自然 react 是 404 标准错误。与您在 URL 中输入错误时的输出完全相同(如/user/dtail.jsf)。那么问题来了:有没有这样的方法?

或者这个 react (404) 是否合适?

谢谢。

最佳答案

只需将 validator 附加到 id View 参数,如果验证失败,则在响应中设置错误代码 404。

例如

考虑这个简单的 Facelet:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<f:metadata>
<f:viewParam id="id" name="id" value="#{myBean.id}" validator="#{myBean.validate}"/>
</f:metadata>

<h:body>

<h:outputText value="#{myBean.id}"/>

</h:body>

</html>

以及以下支持 bean:

@ManagedBean
@ViewScoped
public class MyBean {

private Long id;

public void validate(FacesContext context, UIComponent component, Object object) {
// Do some validation
// And if failed:
context.getExternalContext().setResponseStatus(404);
context.responseComplete();
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

}

关于java - 如何解决 "throw"JSF2 404 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4901710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com