gpt4 book ai didi

java - 对象作为 中的 itemValue

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:24 25 4
gpt4 key购买 nike

<分区>

是否可以在标签中将对象作为itemValue

例如我有一个 Foo 类:

public class Foo {
private int id;
private String name;
private Date date;
}

还有一个类Bar

public class Bar {
private Foo foos;
}

public class BarBean {
private Set<Foo> foos;
}

现在在一个名为 BarBean 的 Bean 中,我需要像这样从 User 获取当前 Bar 的 Foo:

<h:selectOneMenu value="#{barBean.bar.foo}" required="true">
<f:selectItems value="#{barBean.foos}" var="foo" itemLabel="#{foo.name}" itemValue="#{foo}" />
</h:selectOneMenu>

----------------编辑:

my converter:

package ir.khorasancustoms.g2g.converters;

import ir.khorasancustoms.g2g.persistance.CatalogValue;
import java.util.ResourceBundle;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

@FacesConverter("ir.khorasancustoms.CatalogValueConverter")
public class CatalogValueConverter implements Converter {

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();

try {
int id = Integer.parseInt(value);
CatalogValue catalogValue = (CatalogValue) session.load(CatalogValue .class, id);
return catalogValue;
} catch (Exception ex) {
Transaction tx = session.getTransaction();
if (tx.isActive()) {
tx.rollback();
}
ResourceBundle rb = ResourceBundle.getBundle("application");
String message = rb.getString("databaseConnectionFailed");
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, message, message));
} finally {
session.close();
}

return null;
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return ((CatalogValue) value).getId() + "";
}

}

还有我的小脸:

    <h:outputText value="#{lbls.paymentUnit}:"/>
<h:selectOneMenu id="paymentUnit" label="#{lbls.paymentUnit}" value="#{price.price.ctvUnit}" required="true">
<f:selectItems value="#{price.paymentUnits}"/>
<f:converter converterId="ir.khorasancustoms.CatalogValueConverter"/>
</h:selectOneMenu>
<h:message for="paymentUnit" infoClass="info" errorClass="error" warnClass="warning" fatalClass="fatal"/>

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com