- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题:
在我的保存方法中,我收到一个 inscriptionsForm 但它包含的是 null; inscriptionsForm.getInscriptions() == null,为什么?
我尝试了多种方法,例如:
<div th:each="inscription, stat : *{inscriptions}">
<div th:each="inscription, stat : *{inscriptionsForm.inscriptions}">
<div th:each="inscription : *{inscriptionsForm.inscriptions}">
但始终为空。
我的代码:
/** The Class TrainingTypeListController. */
@Controller
public class InscriptionListController {
/** The Constant TRAINING_VIEW_NAME. */
private static final String TRAINING_VIEW_NAME = "training/inscriptions";
/** The TrainingTypeService. */
@Autowired
private TrainingService trainingService;
/** The trainingTypes. */
public static List<Inscription> inscriptions;
/** The trainingTypes. */
private Training training;
/**
* Instantiates a new training Controller.
*/
public InscriptionListController() {
// Default empty constructor.
}
/**
* Show TrainingType List.
*
* @param model
* the model
* @return the string the view
*/
@RequestMapping(value = "trainingList/inscriptions/{trainingId}")
public String trainings(@PathVariable Long trainingId, Model model) {
//List of inscriptions
inscriptions = trainingService.getInscriptionsByTrainingId(trainingId);
model.addAttribute("inscriptions", inscriptions);
training = trainingService.findById(trainingId);
model.addAttribute("training", training);
InscriptionsForm inscriptionsForm = new InscriptionsForm();
inscriptionsForm.setInscriptions(inscriptions);
model.addAttribute(inscriptionsForm);
//System.out.println("-> " + inscriptionsForm);
//System.out.println("-> " + inscriptionsForm.getInscriptions());
return TRAINING_VIEW_NAME;
}
/**
* List of inscriptions.
*
* @return List<Inscription>
*/
@ModelAttribute("inscriptions")
public List<Inscription> inscriptions() {
return inscriptions;
}
/**
* List of inscriptions.
*
* @return Inscription
*/
@ModelAttribute("training")
public Training training() {
return training;
}
@RequestMapping(value = "trainingList/inscriptions/save", method = RequestMethod.POST)
public String save(@Valid @ModelAttribute InscriptionsForm inscriptionsForm) {
System.out.println("formulario: " + inscriptionsForm);
System.out.println("inscriptionsForm: " + inscriptionsForm.getInscriptions());
List<Inscription> inscriptions = inscriptionsForm.getInscriptions();
System.out.println("****\n " + InscriptionListController.inscriptions);
System.out.println("name: " + InscriptionListController.inscriptions.get(0).getAccount().getName());
System.out.println("note: " + InscriptionListController.inscriptions.get(0).getNote());
if(null != inscriptions && inscriptions.size() > 0) {
InscriptionListController.inscriptions = inscriptions;
for (Inscription inscription : inscriptions) {
System.out.printf("%s \t %s \n", inscription.getAccount().getName());
}
}
System.out.println("---------------------------------------------- ");
return "redirect:/trainingList";
}
}
表格
/** The InscriptionsForm. */
public class InscriptionsForm {
/** The Inscription List. */
private List<Inscription> inscriptions;
/** The getInscriptions. */
public List<Inscription> getInscriptions() {
return inscriptions;
}
/** The setInscriptions. */
public void setInscriptions(List<Inscription> inscriptions) {
this.inscriptions = inscriptions;
}
}
HTML
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:tiles="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title th:text="#{inscriptions.title}"></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="../../../resources/css/bootstrap.min.css" rel="stylesheet"
media="screen" th:href="@{/resources/css/bootstrap.min.css}" />
<link href="../../../resources/css/core.css" rel="stylesheet"
media="screen" th:href="@{/resources/css/core.css}" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="../../../resources/js/bootstrap.min.js"
th:src="@{/resources/js/bootstrap.min.js}"></script>
</head>
<body>
<!-- Generic Header -->
<div th:replace="fragments/header :: header(active='training')"> </div>
<fieldset>
<!-- Verify if exits Inscriptions -->
<div th:unless="${#lists.isEmpty(inscriptionsForm.inscriptions)}">
<h2 class="text-center"
th:text="#{inscription.inscriptionlist}+${training.name}">List
of Training Types</h2>
<!-- Table List of Inscriptions -->
<form method="post" th:action="@{/trainingList/inscriptions/save}"
th:object="${inscriptionsForm}">
<table class="table table-striped table-hover form-narrow ">
<thead>
<tr>
<th th:text="#{name}">Name</th>
<th th:text="#{inscription.attend}">Attend</th>
<th th:text="#{inscription.note}">Note</th>
<th th:text="#{inscription.pass}">Pass</th>
<th th:text="#{inscription.unsubscribe}">Baja</th>
</tr>
</thead>
<tbody>
<!-- Table Inscriptions -->
<tr th:each="inscription : ${inscriptionsForm.inscriptions}">
<td th:text="${inscription.account.name}">name</td>
<td><input type="checkbox"
th:checked="${inscription.attend}"
th:title="#{inscription.infoAttend}" /></td>
<td><textarea id="note" th:text="${inscription.note}"
th:placeholder="#{note}" rows="3" cols="40"> Note </textarea></td>
<td><input type="checkbox" th:checked="${inscription.pass}"
th:title="#{inscription.infoPass}" /></td>
<td><input type="checkbox"
th:checked="${inscription.unsubscribe}"
th:title="#{inscription.infoUnsubscribe}" /></td>
</tr>
</tbody>
</table>
<!-- Button Modify, visible if a checkbox enable is pressed -->
<div class="text-center">
<button type="submit" class="btn btn-success btn-lg"
th:text="#{inscription.confirm}">Confirm</button>
</div>
</form>
</div>
</fieldset>
</body>
</html>
最佳答案
我的错误出现在实体铭文中,因为默认构造函数不是公开的,它是 protected 。
th:field 捕获表中字段的值,并使用您放入表中的值创建一个新的铭文集属性:
th:field="*{inscriptions[__${stat.index}__].attend}"
我的html:
<!-- Table List of Inscriptions -->
<form method="post" th:action="@{/trainingList/inscriptionList/save}"
th:object="${inscriptionsForm}">
<table class="table table-striped table-hover form-narrow ">
<thead>
<tr>
<th th:text="#{name}">Name</th>
<th th:text="#{inscription.attend}">Attend</th>
<th th:text="#{inscription.note}">Note</th>
<th th:text="#{inscription.pass}">Pass</th>
<th th:text="#{inscription.unsubscribe}">Baja</th>
</tr>
</thead>
<tbody th:each="inscription, stat : *{inscriptions}">
<tr>
<td th:text="${inscription.account.name}">name</td>
<td class="text-center"><input
th:field="*{inscriptions[__${stat.index}__].attend}"
th:value="${inscription.attend}" type="checkbox"
th:checked="${inscription.attend}"
th:title="#{inscription.infoAttend}" /></td>
<td><textarea class="form-control"
th:field="*{inscriptions[__${stat.index}__].note}" id="note"
th:text="${inscription.note}" th:placeholder="#{note}" rows="3"
cols="40"> Note </textarea></td>
<td class="text-center"><input
th:field="*{inscriptions[__${stat.index}__].pass}"
type="checkbox" th:checked="${inscription.pass}"
th:title="#{inscription.infoPass}" /></td>
<td class="text-center"><input
th:field="*{inscriptions[__${stat.index}__].unsubscribe}"
type="checkbox" th:checked="${inscription.unsubscribe}"
th:title="#{inscription.infoUnsubscribe}" /></td>
</tr>
</tbody>
</table>
<!-- Button Confirm, confirm the list of inscription -->
<div class="text-center">
<button type="submit" class="btn btn-success btn-lg" th:name="save"
th:text="#{inscription.confirm}"
th:title="#{inscription.infoConfirm}">Confirm</button>
</div>
</form>
</div>
关于java - 使用 java、thymeleaf 和 spring mvc 形成表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29009687/
我正在阅读 deduction guides在 C++17 中。假设我们有以下示例: template struct Custom { }; template struct Person {
我在我的 xamarin 表单项目中使用选项卡式页面。我正在尝试在 Android 的 MyTabsRenderer 类中使用 OnTabReselected 事件。但不会调用 OnTabSelect
我对 NSPredicate 有疑问。想不出一种写法,也找不到类似的东西。我有这个谓词: [NSPredicate predicateWithFormat:@"followedBy.username
我的模态中有一个小表单,如下所示: Name
我正在尝试制作用于表单验证的 jquery 插件(用于学习)。在此表单中,我无法获取类名称为“required”的所有表单字段。代码如下: (function( $ ) { $.fn.kValidat
在我的 Android 应用中,我从 Google Place API 获取附近餐馆的列表。 但不幸的是,这个列表没有给出餐厅的菜单。 我有 T_RESTAURANT 和 T_MENU 表。 假设我在
我正在尝试使用 angular.js 和 devise 设置登录。 这是我的表单 html: Email Password
谁能告诉我如何让生成的文档从表单中提取数据并将其作为标题?我已经查看了 Google Script 文档,但到目前为止我还没有找到任何可以回答我或向我展示类似示例的内容。到目前为止,我在这里找到了相关
当我有这样的表格时: “.”是什么意思?在行动中代表什么? 最佳答案 action 属性告诉表单将表单数据发布到哪里。 . 代表当前目录,所以我会说这是发布到当前目录中的默认文档。 相对路径有几
Mockito 似乎是一个非常漂亮的 Java stub /模拟框架。唯一的问题是我找不到任何关于使用他们的 API 的最佳方式的具体文档。测试中常用的方法包括: doXXX(???) : Stubb
我有 2 份表格。我从一种形式创建并展示了另一种形式。效果很好。但是,当我尝试从创建该表单的表单中关闭或处理该表单时,出现以下异常: Exception : Value Dispose() can
将我的应用程序上传到 TestFlight 时出现以下错误。 但是,我没有看到 missing 的任何位置Xamarin Assets 菜单中的图标。 (76x76、167x167 和 152x152
我的models.py文件看起来像这样 from django.db import models from django.template.defaultfilters import slugify
问题 学习 Xamarin 大学类(class) XAM120 .在将我的 IDial 实现添加到我的 UWP 项目时遇到障碍。出于某种原因,我的项目没有在我的系统上使用 PhoneCallManag
我在应用程序的列表页面上使用了 FloatingActionButton,我还想添加一个 searchBar。但我无法向他们展示该页面。我的代码和屏幕截图已关闭。如何显示搜索栏? FAB Github
实体产品和类别之间存在经典的多对多关系,其中一个产品可能包含在多个类别中。我们想在 UI 中使用带有 UITableViewController 或 UICollectionView 的 NSFetc
html 代码: js代码: function show(){ $.ajax({
我有一个用户列表。现在任何一个名字很长的用户都在搞乱排列/排列。 我认为通过为名称设置大小可以达到目的: .invitee .name{ height: 50px; width: 115px;
我正在使用 Flask 框架和 WTforms 库,我在更改选择字段中每个选项的颜色时遇到了问题,因为它总是显示为黑色而不是红色 我在模板中有下一个表单
Dugen Chen 写了一篇有用的文章,介绍如何将 HTML5 验证中的“required”属性添加到 Django 表单字段。 http://duganchen.ca/elegantly-addi
我是一名优秀的程序员,十分优秀!