java - 使用 FreeMarker 从选择返回值
问题描述
我有一个表格:
<form action="user-fonts" method="post" ">
<select >
<#list fonts as font>
<option value=${font}>${font.nameFont?ifExists}</option>
</#list>
</select>
<input type="hidden" name="_csrf" value="${_csrf.token}" />
<div><input type="submit" value="Sign In"/></div>
</form>
如何获取我在表单上选择的控制器中的值?
@RequestMapping("/user-fonts")
public class MainController{
@GetMapping
public String main(@AuthenticationPrincipal User user, Model model)
{
Set<DBFont> fonts = user.getFont();
model.addAttribute("fonts", fonts);
return "Myfonts";
}
@PostMapping
public String mainPost(@ModelAttribute DBFont DBfont)
{
System.out.println(DBfont.getNameFont());
return "redirect:/user-fonts";
}
数据库中有一个值,但我得到null
,如何返回该值?
解决方案
您需要为name
您的选择定义一个属性,例如nameFont
:
<select name="nameFont">
这会将字体选择值作为 POST 参数发送nameFont
推荐阅读
- acumatica - 在进程屏幕中显示自定义操作
- ios - CoreData 实体没有下标成员
- rapidminer - 如何将“自动模型”从快速矿工保存到本地磁盘
- eclipse - jdbc metadata DEBUG RUN 结果差异
- sql - SQL Server 如何使用 information_schema.columns 或 sys.tables 从表列表中进行选择?
- ruby-on-rails - 如何在 S3 访问 ActiveStorage 附件的 URL?
- python - 如何使用 python 将 numpy.ndarray 的人脸编码附加到列表对象中
- c# - WPF - 将故事板放入资源字典
- javascript - 看不懂这个功能
- javascript - 加载视频后的 Vimeo 播放器 enableTextTrack