Java JHipster中的复选框

Java JHipster中的复选框,java,angular,checkbox,jhipster,Java,Angular,Checkbox,Jhipster,我在html中有一个复选框 <input type="checkbox" class="form-control" name="myflag" [(ngModel)]="myEntity.myflag" id="field_myflag"> 因此: 每次尝试保存时,我都会遇到一个异常: WARN 888---[XNIO-7 task-5].m.a.ExceptionHandlerExceptionResolver:由处理程序执行引起的已解决异常:org.springframewor

我在html中有一个复选框

<input type="checkbox" class="form-control" name="myflag" [(ngModel)]="myEntity.myflag" id="field_myflag">
因此:

每次尝试保存时,我都会遇到一个异常:

WARN 888---[XNIO-7 task-5].m.a.ExceptionHandlerExceptionResolver:由处理程序执行引起的已解决异常:org.springframework.http.converter.httpMessageNodeAbleException:JSON解析错误:无法反序列化
myproject.hipster.testing.domain.enumeration.MyFlagnum
值外\u假标记的实例;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化
myproject.hipster.testing.domain.enumeration.myflagnum的实例
out of VALUE\u错误标记位于[Source:(PushbackInputStream);行:1,列:37](通过引用链:myproject.hipster.testing.domain.MYENTITY[“myflag”)

似乎无法将VALUE\u FALSE(或VALUE\u TRUE)转换为“KO”(或“OK”)。所以我创建了一个转换器,但我看到它没有被调用。 如何使用JHipster复选框管理自己的“布尔”值?

试试看

...
@JsonDeserialize(using = OkKoDeserializer.class)
private MYFLAGENUM myflag;
以及:

public类OkKoDeserializer扩展stdscalArderSerializer{
公共OkKoDeserializer(){
超级(Myflagnum.class);
}
@凌驾
公共MyFlagnum反序列化(JsonParser p,DeserializationContext ctxt)抛出IOException,JsonProcessingException{
字符串值=p.getValueAsString();
如果(“值\假”。相等信号情况(值)){
返回myflagnum.KO;
}
如果(“值为真”。相等信号情况(值)){
返回myflagnum.OK;
}
抛出新的IllegalArgumentException(“value”+value+“无法解析为MyFlagnum”);
}
}
通过这种方式,您可以告诉框架使用特殊策略将输入值转换为枚举值

public enum MYFLAGENUM {
   OK, KO
}
...
@JsonDeserialize(using = OkKoDeserializer.class)
private MYFLAGENUM myflag;
public class OkKoDeserializer extends StdScalarDeserializer<MYFLAGENUM> {
public OkKoDeserializer() {
    super(MYFLAGENUM.class);
}

@Override
public MYFLAGENUM deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
    String value = p.getValueAsString();
    if ("VALUE_FALSE".equalsIgnoreCase(value)) {
        return MYFLAGENUM.KO;
    }
    if ("VALUE_TRUE".equalsIgnoreCase(value)) {
        return MYFLAGENUM.OK;
    }

    throw new IllegalArgumentException("value " + value + " is not parseable to a MYFLAGENUM");
}
}