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

标签 java web-applications jsf-2

假设我有一个管理用户的应用程序。您可以添加新用户、删除他们、编辑详细信息等。每个用户都有一个 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/

相关文章:

java - 尝试从 ZIP 存档创建 ImageIcon 对象时出现 PNGException "crc corruption"

java - org.springframework.orm.hibernate3.HibernateQueryException - HibernateTemplate

java - 什么时候使用速度?

java - 在 JSF 中构建简单的事务

html - 如何让JSF通过HTML属性

java - 管理 1 个项目中的多个 Google Web Toolkit 页面

java - 为什么 Netbeans 8.0 不显示源代码

java - 使用 PubSub 在本地运行 java 数据流管道

java - Tomcat 无法在 java 类中找到引用的文件

jsf-2 - f :verbatim tag stops working when inside a dataTable