<p:selectOneRadio id="selection" value="#{miCurso.respuestaDTO}" converter="clientesConverter">
<f:selectItems value="#{pregunta.respuestas}" var="respuesta" itemLabel="#{respuesta.respuesta}" itemValue="#{respuesta}" />
coverter爲selectoneradio:
package JSF_Converters;
@FacesConverter(value = "clientesConverter")
public class ClientesConverter implements Converter {
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
if (arg2 == null || arg2.equals("")) {
return "";
}
if (arg0 == null) {
throw new NullPointerException("context");
}
if (arg1 == null) {
throw new NullPointerException("component");
}
return ((EmpresaClienteUtil) arg2).getCodigo();
}
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
if (arg2.trim().equals("")) {
return null;
}
if (arg0 == null) {
throw new NullPointerException("context");
}
if (arg1 == null) {
throw new NullPointerException("component");
}
FacesContext ctx = FacesContext.getCurrentInstance();
ValueExpression vex = ctx.getApplication().getExpressionFactory().createValueExpression(ctx.getELContext(), "#{comunMB}", ComunMB.class);
ComunMB items = (ComunMB) vex.getValue(ctx.getELContext());
EmpresaClienteUtil item;
try {
item = items.getItemClientes(arg2);
} catch (Exception e) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Valor desconocido", "El valor es desconocido!");
throw new ConverterException(message + e.getMessage());
}
if (item == null) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Valor desconocido", "El valor es desconocido!");
throw new ConverterException(message);
}
return item;
}
}
ComunMB
package ManagedBean;
@Named(value = "comunMB")
@ApplicationScoped
public class ComunMB {
public ComunMB() {
}
private HashMap<String, EmpresaClienteUtil> myHPClientes = new HashMap<String,EmpresaClienteUtil>();
public EmpresaClienteUtil getItemClientes(String clave) {
return (EmpresaClienteUtil) myHPClientes.get(clave);
}
}
respuestaDTO是一個對象??? – meyquel 2014-10-29 20:40:58
如果是的話,你必須實現一個轉換器類... – meyquel 2014-10-29 20:42:31