【问题标题】:How Do I Return getAsObject Value如何返回 getAsObject 值
【发布时间】:2012-08-13 06:52:17
【问题描述】:

请问如何在转换器中通过此方法返回性别。

我有一个性别实体:

@Entity
public class Gender implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String gender;

还有一个使用 selectItem 来检索所有性别的 managedBean

public List<SelectItem> getGenderNoList() {
    List<Gender> genderList;
    Gender gender;
    List<SelectItem> selectedGender = new ArrayList<SelectItem>();
    genderList = appSessionBean.getAllGender();
    for(Gender g : genderList) {
        SelectItem s = new SelectItem(g.getGender());
        selectedGender.add(s);
    }
    return selectedGender;
}

还有一个转换器

public Object getAsObject(FacesContext context, UIComponent component, String value) {


}

【问题讨论】:

  • 是的,我之前确实阅读过 dat,但我只是不知道确切的代码行。 tnx
  • value 应该保持性别,试试 System.out.println(value);在public Object getAsObject里面
  • 是的,我在打印输出中得到了值,但是我如何将它作为对象返回

标签: jsf-2


【解决方案1】:

一种方法是将 Gender 对象 : id 和 gender 放在 SelectItem 的值中

 SelectItem s = new SelectItem(g.getGender()+"UniqeSeperator"+g.getId(),g.getGender());

然后在getAsObject( 做这样的事情

...
String[] tmpArr = value.split("UniqeSeperator");
return new Gender(Long.valueOf(tmpArr[0]),tmpArr[1]);

这样的……

【讨论】:

  • 丹感谢您的帮助,但没有其他方法吗?请
  • 如果你有一些从性别映射到其性别值的映射,你可以在 getAsObject( 中使用它,类似于 return new Gender(someMap.get(value),value);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 2020-04-22
相关资源
最近更新 更多