Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JSF实现注册表单?_Jsf_Model View Controller - Fatal编程技术网

用JSF实现注册表单?

用JSF实现注册表单?,jsf,model-view-controller,Jsf,Model View Controller,我正试图自学使用JSF进行web开发。关于这一点和那一点,有各种各样的资料可供了解,但我很难把它们全部结合起来 假设我有一个数据库,其中有一个名为user的表,该表包含以下列:id、name、姓氏。 我在我的项目中使用JPA,所以我有一个带有@Entity注释的类,它映射到这个类。 我还有一个index.xhtml,其中有一个带有用户名和密码字段的注册表表单。 因此,当用户单击REGISTER按钮时,我应该检查是否存在具有相同用户名的用户,如果不存在,我应该注册该用户并将该用户重新发送到welc

我正试图自学使用JSF进行web开发。关于这一点和那一点,有各种各样的资料可供了解,但我很难把它们全部结合起来

假设我有一个数据库,其中有一个名为user的表,该表包含以下列:id、name、姓氏。 我在我的项目中使用JPA,所以我有一个带有@Entity注释的类,它映射到这个类。 我还有一个index.xhtml,其中有一个带有用户名和密码字段的注册表表单。 因此,当用户单击REGISTER按钮时,我应该检查是否存在具有相同用户名的用户,如果不存在,我应该注册该用户并将该用户重新发送到welcome.xhtml。若注册失败,那个么用户应该留在index.xhtml中

我的问题是:

我有一个index.xhtml和一个UserEntity.Java。但还有什么?我是否需要一个RegistrationFormBean,它是@ManagedBean?这个RegisterActionFormBean将有一个带有的registerUser方法。然后呢?我有一个RegistrationFormControllerBean吗?它也应该是ManagedBean吗?或者我需要一个UserRegistrationBean?用户注册服务


那么如何正确地创建MVC呢

您只需要一个bean-但有一点需要注意,您不应该再使用
ManagedBean
注释,而应该使用CDI技术,所以只需使用
@Named
。您将为您的实体设置getter和setter,以便您可以在页面上使用它。最后是注册方法,ti可以是

@Named
//@RequestScoped is the default
public class MyBean {

    @Inject //you can inject other beans or EJBs
    private UserDaO userDao; //this class will handle DB operations for user

    private YourUserEntity entity;

    public void register() {
        if(!userDao.isUserExists(entity)) {
            userDao.save(entity);
        }
    }
}

谢谢那么UserDao.Java有一个UserEntity.Java?MyBean是如何连接到xhtml页面中的表单的本教程将让您开始学习,您询问的是最基本的内容,但我在本教程中没有看到任何MVC或数据库连接,谢谢。您在这里讨论的是不同的技术,首先学习JSF和CDI的基础知识(这两种技术是协同工作的基础)-您可以使用我给您的链接或其他教程。在您了解了发生的事情之后,再看一看JPA或Hibernate教程,并尝试将这些东西连接在一起,对于MVC,请看这里-