我刚接触Spring、Thymeleaf和jOOQ。我想在概述中显示数据库查找的结果。当我只查询select()时。从(配置)来看,Thymeleaf视图工作得很好。但是,当我想加入User表,将用户名而不仅仅是id添加到结果中时,我得到了一个错误。
这是webbrowser中的错误:
2016年10月10日星期一16:04:17 CEST出现意外错误(类型=内部服务器错误,状态=500)。计算SpringEL表达式时出现异常:“config.name”(概述:37)
这是Eclipse中的错误:
org.springframework.expression.spel。SpelEvaluationException:EL1008E:(位置7):在“org.jooq.impl”类型的对象上找不到属性或字段“name”。可能不是公开的?
我知道我的视图代码是错误的,但我不知道应该把“config.name”改成什么来获得正确的property.field。
这是我的控制器:
@Controller
public class OverviewController
{
public ArrayList configurationList = new ArrayList();
@RequestMapping("/overview")
public String showConfigurationList(Model model)
{
model.addAttribute("configs", getConfigurations());
return "overview";
}
public ArrayList getConfigurations()
{
try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword))
{
DSLContext create = DSL.using(conn, SQLDialect.POSTGRES_9_5);
Result<Record5<String, String, Timestamp, String, String>> result = create.select(CONFIGURATION.NAME, CONFIGURATION.VERSION, CONFIGURATION.DATE_MODIFIED, CONFIGURATION.AUTHOR_USER_ID, USER.NAME)
.from(USER).join(CONFIGURATION)
.on(CONFIGURATION.AUTHOR_USER_ID.equal(USER.ID)))
.fetch();
/*Result<Record> result = create.select()
.from(CONFIGURATION)
.fetch();*/
if(configurationList.isEmpty() == true)
{
for (Record5 r : result) {
configurationList.add(r);
}
}
}
catch (Exception e)
{
System.out.println("ERROR: " + e);
}
return configurationList;
}
这是Thymeleaf的观点:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<title>Nazza Mediator - Overview</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" />
<script src="http://code.jquery.com/jquery.js" />
<script src="webjars/bootstrap/3.3.7-1/js/bootstrap.min.js" />
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="/">Nazza Mediator</a>
</div>
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li class="active"><a href="/overview">Configuration Overview</a></li>
</ul>
</div>
</nav>
<h3>Configuration Overview</h3>
<table class="table table-hover">
<tr>
<th>NAME</th>
<th>VERSION</th>
<th>DATE MODIFIED</th>
<th>AUTHOR</th>
</tr>
<tr th:each="config : ${configs}">
<td th:text="${config.name}"></td>
<td th:text="${config.version}"></td>
<td th:text="${config.dateModified}"></td>
<td th:text="${config.authorUserId}"></td>
</tr>
</table>
</body>
</html>
我假设您已经启动并运行了jOOQ代码生成器。
因此,当您使用第一个select时
Result<Record> result = create.select()
.from(CONFIGURATION)
.fetch();
实际上,最终的结果是
如果您写下连接并手动添加字段,您将拥有一个通用记录,一个只提供#get(String field dName)
和其他一些的实现。
在您看来,您必须更改对值的访问权限,如下所示
<td th:text="${config.get('NAME')}"></td>
你必须在每个领域都这样做。
但是要小心,在您的查询中有两个名为“name”的字段,我想你应该将其中一个别名。例如,USER. NAME. as('userName')
并在调用中使用它来获取。
如果有帮助,请告诉我。
还有一个编辑:jOOQ的Lukas Eder问是否可以使用配置['NAME]:这在通用记录中是不可能的,但也只能在特定记录中使用。此外,在所有引用字段名的情况下,都必须小心,因为它区分大小写。
我正试图按照本教程将thymeleaf添加到springboot应用程序中,但我似乎无法让它工作。辅导的:http://spr.com/part-2-adding-views-using-thymeleaf-and-jsp-if-you-want/ 当我在LoginController中使用@RestController启动应用程序时,我能够让springstart正常工作,但是当我将@RestC
问题内容: 我目前正在做类似物物交换系统的系统。这样的情况。客户(茉莉花)需要输入“ NAME”属性(她必须寻找的内容)并输入“ SEEK”属性(她需要寻找的内容)。为了获得结果,“ SEEK”属性必须与其他客户的“名称”属性匹配,而其他客户的“ SEEK”属性必须与Jasmine的“ HAVE”属性匹配。 例如我有表项(已经在数据库中) 例如,茉莉花具有“名称”属性的耳机和“搜索”属性的笔记本电
我正在尝试实现一个自定义的 Spring 存储库。我有界面: 其中RataEntity类是 它的实施 和以下存储库类 当我运行我的应用程序时,我得到这个错误: 未能创建方法公共摘要的查询java.util.Listit.aubay.PreliosPAN.repositories.RataRepositoryCustom.getRateFromTipo频率zaRimborso(java.lang.字
我试图运行Webpack上的一个项目和我得到多个错误 我应该安装我所有的打字,所以我不知道这些是从哪里来的。我试图从一个编译的项目中复制package.json,但没有帮助。我错过了什么? 我的tConfig看起来像这样
我试着寻找类似的问题,但没有成功。 谢谢!
我正在开发一个基本的自定义相机应用程序这些是我的依赖 camera_version=“1.0.0”