我无法通过索引页面提交表单,但我可以从邮递员那里提交。
当使用内容类型application / json从邮递员提交时,一切正常。从表单提交时,我收到了:
浏览器: “出现意外错误(type = Unsupported Media Type,status = 415)。 内容类型'application / x-www-form-urlencoded; charset = UTF-8'不受支持“
控制台: 由Handler执行引起的已解决异常:org.springframework.web.HttpMediaTypeNotSupportedException:内容类型'application / x-www-form-urlencoded; charset = UTF-8'不受支持
为什么需要json数据?我的表单也正确地将带有数据(名称)的对象城镇发送到控制器?
这是我在索引页面上的表格,它是用百里香书写的:
<form action="" th:action="@{/addTown}" th:object="${towns}" method="post">
<input type="text" name="name" th:value="*{name}" />
<input type="submit" name="submit" value="Add"/>
</form>
控制器:
public class Controller {
@Autowired
ServiceTowns serviceTowns;
@PostMapping(value="/addTown")
public ModelAndView addTown(@Valid @RequestBody Town town) {
ModelAndView mv = new ModelAndView("success");
mv.addObject(serviceTowns.addTown(judete));
return mv;
}
}
服务:
@Service
@Transactional
public class ServiceTowns {
@Autowired
RepTown repTown;
public Towns addTown(Towns towns){
return RepTown.save(towns);
}
}
存储库:
public interface RepTown extends JpaRepository<Towns, Integer> {
}
模特:
@Entity
@Table(name="towns")
public class Towns {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name="name")
private String name;
public Towns(){}
public Towns(String name){
this.name= name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
}