我在thymleaf的表单中有一个变量,这个变量是一个日期,必须嵌入到控制器中的一个方法中,该方法将显示特定日期的数据。我的问题是,当变量被选中并提交时,我会在我的url中得到一个奇怪的链接,就像这样localhost:8080/masomo/somo/?date=11-03-2021&date=date 对那一页没有任何回应。提交变量时我做错了什么。
以下是masomo.html中的表单
<form th:action="@{/masomo/somo/}">
<select id="date" name="date" required="true">
<option value="none" selected disabled hidden >
Select a Date
</option>
<th:block th:each="somoChagua : ${masomoChagua}">
<option th:each="date : ${somoChagua.date}" th:value="${date}" th:text="${date}" ></option>
</th:block>
</select>
<button type="submit" th:name="date" th:value="date" ><i class="fa fa-search"></i> </button>
</form>
下面是我如何在controller中设置方法来接收变量
@Autowired
private MisaleRepository misaleRepository;
@RequestMapping(value = "/masomo/somo/{date}", method=RequestMethod.GET )
public String chaguaSomo(@RequestParam(value = "date", required = true) String date, Model model ){
List<Misale> masomo = misaleRepository.getSomoBytarehe(date);
model.addAttribute("masomoYote", masomo);
return "masomo";
}
这是我的存储库
public interface MisaleRepository extends JpaRepository <Misale, String> {
@Query(value ="SELECT * FROM misale WHERE misale.date = ?1 " , nativeQuery = true)
public List<Misale> getSomoBytarehe(String date);
}
2条答案
按热度按时间nwnhqdif1#
删除
th:name
以及th:value
在submit按钮行中日期值作为请求参数从视图传递给控制器,但控制器将其作为路径变量接收。
pftdvrlh2#
我不得不改变我的形式如下
我把按钮改成
我还将controller中的方法更改为
在上述更改之后,我现在可以将数据从块th:each中的窗体传递到控制器