我正在尝试使用spring-boot解析一个简单的index.html文件。如果我放入localhost:8080 / index.html它会解析,或者如果我没有,我会得到White Error Page。
我把它发布在GIT上;这是一个非常简单的应用:Git Hub Link
问题似乎是模型:
表单模型:
@Entity
@Table(name="applicant")
public class FormModel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
@Email
private String email;
@Size(min=2, max=200)
private String description;
public String getName() {
return name;
}
@Required
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
@Required
public void setEmail(String email) {
this.email = email;
}
public String getDescription() {
return description;
}
@Required
public void setDescription(String description) {
this.description = description;
}
}
家庭控制器:
@RestController
public class Home {
@RequestMapping(value = "/", method = {RequestMethod.GET, RequestMethod.POST} )
public ModelAndView index(){
ModelAndView modelAndView = new ModelAndView("/index.html");
return modelAndView;
}
}
答案 0 :(得分:3)
查看源代码后
标题问题的答案是:
您使用的是Thymeleaf,它可以解析模板index
,但不能解析/index.html
。来自Thymeleaf的TemplateResolver负责加载HTML标记。默认情况下,它会将index
等模板名称转换为classpath:/templates/index.html
或WEB-INF/templates/index.html
等资源名称。
这样的事情应该有效:
ModelAndView modelAndView = new ModelAndView("index");
但它不会对你有太多帮助,因为你还有其他一些工作要做。
图片显示您使用@
作为对象,但您应该使用$
,请查看docs
Thymeleaf实际上使用xml格式,所以你不能使用你的html,只需在其中添加一些百里香形式。您需要为每个<hr/>
,<br/>
添加结束标记,依此类推。
您使用../static/js/some.js
之类的html链接,但您应该使用/js/some.js
获取更多信息,可以谷歌如何解析静态文件
以下是包含一些修复的回购:https://github.com/varren/Portfolio