相关疑难解决方法(0)

JSF服务层

我不确定我在JSF中使用MVC环境的方法是否是最好的方法.由于我想要充分利用JSF,我想知道我的服务层(或模型,用MVC术语说)应该如何"设计".

我知道视图 - 控制器比率应该是1比1(排除例外情况).现在我应该以什么方式设计我的服务层?我应该使用一项大型服务(不这么认为)吗?如果没有,根据我应该分割我的服务?

注意,我的服务将从Beans(控制器以MVC术语)调用,服务本身将在必要时使用JPA调用DAO.

提前致谢

java model-view-controller jsf service-layer

20
推荐指数
1
解决办法
1万
查看次数

在Java EE前端方法中处理服务层异常

我维护一个Web应用程序,其中包含一个带有JSF标记的页面<f:event.我在服务类中重写了一个方法,以便抛出一个业务异常.但是,当抛出业务异常时,它不会被托管bean捕获,并且页面上会显示异常.似乎我的代码try/catch不起作用.

在XHTML中:

<f:event listener="#{resourceBean.init(enrollment)}" type="preRenderView" />
Run Code Online (Sandbox Code Playgroud)

Managed Bean中的监听器方法:

private boolean canCreateResource;

public void init(Enrollment enrollment) {
    (...)

    try {
        canCreateResource = resourceService.canCreateResource(enrollment);
    } catch (BusinessException e) {
        canCreateResource = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

服务类中的方法:

public boolean canCreateResource(Enrollment enrollment) {
    if (...) {
        if (mandateService.isCoordinator(user, course)) {
            return true;
        } else {
            throw new BusinessException("Undefined business rule.");
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

从我在其他网站上看到的内容,我想我必须实现一些JSF的处理程序类.但是哪个以及如何?


EDITED

OBS 1:BusinessException该类扩展了RuntimeException类.

OBS 2:canCreateResource创建属性以控制按钮的渲染.

jsf ejb exception-handling java-ee service-layer

3
推荐指数
1
解决办法
1302
查看次数