控制器不会返回html文件

时间:2018-03-31 08:15:13

标签: java spring thymeleaf

所以我得到了这个简单的代码我想测试,但不知怎的,它不会返回dataBaseEntity.html

@Controller
public class DataBaseMicroserviceRestConnectorProvider {

    @Autowired
    private DataBaseSpringDataConnectorRequester dataBaseSpringDataConnectorRequester;

    @RequestMapping(value = "/add", method = RequestMethod.GET)                                 
    public String addNewDataBaseEntityForm(Model model) {
        model.addAttribute("dataBaseEntity", new DataBaseEntity());
        return "dataBaseEntity";
    }

html file分配了src/main/resources/templates/dataBaseEntity.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Handling Form Submission</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/dataBaseEntity}" th:object="${dataBaseEntity}" method="post">
        <p>Id: <input type="text" th:field="*{id}" /></p>
        <p>Name: <input type="text" th:field="*{name}" /></p>
        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>
</body>
</html>

pom.xml

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

我还有第二个问题:有没有办法用@RestController而不是@Controller来做到这一点?

2 个答案:

答案 0 :(得分:0)

handle form submission in spring boot

转到此链接,它将有助于解决您的问题。

您的示例中可能会遗漏许多内容,

喜欢: - 我在您的控制器中看不到您的 dataBaseEntity 请求,可能在那里您缺少某些内容。

@RestController

我们通常用于我们的休息终点而不是jsp请求。 希望通过这个链接,你将得到你的解决方案。

答案 1 :(得分:0)

您的配置可能有误,请确保为模板设置了正确的后缀和前缀:

@Bean
public SpringResourceTemplateResolver templateResolver(){
    SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
    templateResolver.setApplicationContext(this.applicationContext);
    templateResolver.setPrefix("classpath:/templates/");
    templateResolver.setSuffix(".html");
    templateResolver.setTemplateMode(TemplateMode.HTML);
    templateResolver.setCacheable(true);
    return templateResolver;
}

如果您现在没有配置,这可能是您的问题,请参阅:https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html

关于@RestController注释的第二个问题。这与写作基本相同:@Controller和@ResponseBody

请参阅: Difference between spring @Controller and @RestController annotation