在春季 MVC 应用程序中,我有 问题实体类
@Entity
public class Question {
@Lob
@Column(name="QUESTION_TITLE")
private String question;
...
}
我用百里香叶。 对于这个领域,我的观点是波纹管
<input type="text" class="form-control" id="question"
th:field="*{question}" th:value="${question}" placeholder="">
我的控制器保存方法是
@PostMapping("/save")
public String saveQuestion(Question question, BindingResult bindingResult){
questionService.save(question);
return "redirect:/admin/questions/all/";
}
但是当我提交时,我遇到了错误
Failed to bind request element:
org.springframework.beans.TypeMismatchException:Failed to convert value of type 'java.lang.String' to required type com.sendit.security.model.Question';
nested exception is
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Long] for value 'what';
nested exception is java.lang.NumberFormatException:
For input string: "what"
当我将@Convert(转换器 = 问题转换器.class)属性添加到问题字段并实现像波纹管这样的问题转换器方法时。
@Converter
public static class QuestionConverter implements AttributeConverter<String, Integer> {
@Override
public Integer convertToDatabaseColumn(String attribute) {
return attribute.length();
}
@Override
public String convertToEntityAttribute(Integer dbData) {
return "";
}
}
我再次收到错误。
我已经找到了解决方案。 只需将"问题"字段名称
更改为另一个字段名称(如"标题")即可工作。 这是因为在视图中我想发送"问题"属性时,它被称为对象和发送的对象哈希值。