конвертер преобразует из строки в объект или из объекта в строку.
Сама аннотация сообщает приложению что этот класс[OtdelConverter] будет конвертером для этого класса(модели) [Otdel]. 
@FacesConverter(forClass = Otdel.class)
public class OtdelConverter implements Converter { // }
или будет конвертером с именем: 
@FacesConverter(value = "otdelConverter")@Override
 public Object getAsObject(FacesContext context, UIComponent component, String value) {
// получаем из базы объект  по входящей строке value ( к примеру по id )
    return otdel; //возвращаем объект отдел
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
  //если входящий объект является "отделом" то 
  return ((Otdel) value).getId().toString(); // или что там надо ( name )
}
пример что может получиться в jsf:
получим из url id отдела и отдадим в контроллер demandBean объект Otdel ( class demandBean { private Otdel   otdel; } public Otdel getOtdel/setOtdel)
<f:metadata>
    <f:viewParam name="otdel" value="#{demandBean.otdel}"
                 <!-- если указано имя для @FacesConverter(value= name), то -->
                  converter="otdelConverter" 
                 <!-- иначе можно не указывать конвертер, если он есть - автоматически применится
 converterMessage="#{bundle.badRequest}.#{bundle.unknownOtdel}"
                 />
</f:metadata>