我有两份档案。包含 <input type="text">
以及包含java方法的.java。在java方法中,我需要设置html输入的值。代码是什么?
这是我的密码。
看法
<form action="personform" method="post" th:object="${personBind}">
<input type="text" name="name" th:field="*{name}">
<input type="text" name="year" th:field="*{year}">
spring mvc控制器
ModelAndView modelAndView = new ModelAndView("Person.html");
modelAndView.addObject("personBind", person);
return modelAndView;
name字段中的值来自modelandview中的person对象。很好用。但是“年份”字段的值不在person对象中。我想在年份字段中设置来自不同来源的值。我应该编写什么代码来设置年份字段中的值?
3条答案
按热度按时间n1bvdmb61#
使用在控制器类中添加要以窗体形式填充的模型对象
现在可以通过使用表单标记在表单中使用相同的对象值
modelattribute应该与控制器传递给jsp的model属性相匹配,后台的spring将通过调用各自的getter方法来填充表单输入。因此firstname输入字段将填充student.getfirstname(),如果为null,则输入字段将为空。
jgwigjjp2#
经过一些测试我找到了答案。
这就是我在问题上发布的代码需要更新的方式。
看法
控制器
请注意,它是年份的th:值,而不是th:字段。
gmxoilav3#
如果我完全理解您的问题,您希望从不同对象的数据填充year字段。也许可以尝试实现一个数据传输对象来支持表单,而不是您试图修改的实际对象。像这样:
在你的控制器里有这样的东西
你的胸腺切除术像这样
这样做的目的是将person对象与表单分离,这样,如果年份数据来自其他地方,您就可以修改dto,以便在
@PostMapping
在处理表单数据的地方,保存它。你可以打电话personDto.getPerson()
拯救世界Person
反对或做任何你计划做的事。