我在Mojarra 2.1上。
我有input-element:
<h:inputText value="#{myBean.name} />
<h:commandButton action="#{myBean.doSave()} />
,其中
@ManagedBean
@ViewScoped
public class MyBean{
private String name;
@ManagedProperty(name="myService")
private MyService myService;
public void doSave(){
if(myService.isUnique(name))
myService.save(name);
}
}
public interface MyService{
public boolean isUnique(String name);
public void save(String name);
}
现在,我倾向于编写一个JSF验证器来执行名称唯一性的验证,从而使代码更简洁(在action方法中不再有这个唯一名称检查)。
但我不确定在这样的情况下使用JSF验证器是否合适。在唯一性验证中,我调用了Service
方法,因此我将数据访问与视图技术混合在一起。这似乎是我应该避免的事情。
问题: 我们应该避免使用数据访问编写JSF验证程序吗?如果是这样,那么执行此类检查的好方法是什么?