Chỉ từ một vài tìm kiếm, điều này có vẻ như là một vấn đề đã xảy ra trong một thời gian. Tôi đã viết một FacesConverter trông giống như sau. Đối tượng Danh mục là thực thể JPA và CategoryControl là DAO tìm nạp nó.Tiêm CDI vào một FacesConverter
@FacesConverter(value = "categoryConverter")
public class CategoryConverter implements Converter {
@Inject private CategoryControl cc;
public CategoryConverter() { }
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (cc != null) return cc.getByName(value);
System.out.println("CategoryConverter().getAsObject(): no injection!");
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (!(value instanceof Category)) return null;
return ((Category) value).getName();
}
}
Như bạn có thể đoán bây giờ, tôi không bao giờ được tiêm. Tôi nhận được giải pháp này từ this page, giống như sau:
Workaround for this problem: create this method in your localeController:
public Converter getConverter()
{
return FacesContext.getCurrentInstance().getApplication().createConverter("localeConverter");
}
and use converter="#{localeController.converter}" in your h:selectOneMenu.
Tuy nhiên tôi cũng không thể thực hiện công việc này. Bean sao lưu của tôi tạo và trả về một trình biến đổi, nhưng nó không nhận được đối tượng được tiêm vào nó.
Tôi đang sử dụng MyFaces CODI 1.0.1. Với hộp chứa GlassFish/Weld hiện tại. Bất cứ ai có thể đề xuất một giải pháp trước khi tôi tái mã để không sử dụng một Converter?
Vâng, tôi sẽ được dambed. Tôi đã thực hiện một giải pháp cơ bản để gọi ứng dụng để đánh giá một biểu thức từ bên trong trình biến đổi, nhưng tôi nghĩ điều này là thanh lịch hơn. Vì vậy, tôi có một câu hỏi @BalusC - không phải là về thời gian bạn đã viết một cuốn sách trên JSF? – AlanObject
Bạn được chào đón. Đối với cuốn sách, bạn không phải là người đầu tiên hỏi điều này ... – BalusC
Cũng không phải là bạn sẽ phải viết nhiều - chỉ cần chỉnh sửa tất cả nội dung bạn đã viết. Nghiêm túc tôi đã nghĩ đến một phác thảo cho một cuốn sách nếu bạn quan tâm đến một sự hợp tác chỉ cho tôi biết. – AlanObject