我的控制器:
@Controller
public class CheatController extends WebMvcConfigurerAdapter {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello(@RequestParam("gg") String gg, Model model) {
return "hello";
}
}
我的观点:
<html>
<body>
<form action="#" th:action="@{/hello}" method="get">
<input type="text" id="gg" name="gg" placeholder="Your data"/>
<input type="submit"/>
</form>
<span th:if="${gg != null}" th:text="${gg}">Static summary</span>
</body>
</html>
答案 0 :(得分:0)
好像你在@RequestParam
尝试将此行替换为public String hello(@RequestParam("gg") String gg, Model model)
:
public String hello(@RequestParam(required = false, defaultValue = "") String gg, Model model)
我们在上面的行中设置的是gg不是必需的,如果你的param gg为空或null,则defaultValue将为“”。您可以删除此选项,但这是测试Controller正常工作的好方法,如果您确定您将始终收到gg参数,则可以将其删除。
答案 1 :(得分:0)
你should be using POST
instead of GET
on your form:
Valid State(Id(int PK),Abbreviation(char) ,Name, IsActive)
您还可以将控制器代码简化为:
<form action="#" th:action="@{/hello}" method="get">
答案 2 :(得分:0)
我无法理解它如何影响获取和发送参数,但它帮助了我(我评论说代码的和平并开始起作用)。谁能解释为什么会这样?
@Configuration
public class DefaultView extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers( ViewControllerRegistry registry ) {
//registry.addViewController("/hello").setViewName("hello");
registry.addViewController("/all").setViewName("all");
registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
super.addViewControllers( registry );
}
}