我需要填写SpringBoot的登记表。为此,我创建了两个类:< code>User和< code>Credentials,第二个类处理唯一的用户名和密码。
@Getter
@Setter
@Entity
@Table(name = "users")
public class User {
public User() {}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String username;
}
public class Credentials {
public static final String DEFAULT_ROLE = "DEFAULT";
public static final String ADMIN_ROLE = "ADMIN";
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Getter
@Column(nullable = false, unique = true)
private String username;
@Getter
@Column(nullable = false)
private String password;
@Getter
@Setter
@Column(nullable = false)
private String role;
@OneToOne(cascade = CascadeType.ALL)
private User user;
}
这是registrationController
(处理“/registration”
请求):
@Controller
public class RegController {
@GetMapping("/register")
public String register(Model model){
model.addAttribute("user", new User());
model.addAttribute("credentials", new Credentials());
return "register";
}
}
现在应该已经准备好了,可以从html表单读取数据,并使用thymeleaf
注册新用户。这是<code>注册中的注册表格。html</code>,我的目标是读取用户名和密码,然后创建一个新用户并将其保存在Postgres上:
<body>
<div class="login">
<form id="login" method="POST" th:action="@{/register}">
<label><b>User Name
</b>
</label>
<input type="text" name="Uname" id="Uname" placeholder="Username" required th:field="${credentials.username}">
<br><br>
<label><b>Password
</b>
</label>
<input type="Password" name="Pass" id="Pass" placeholder="Password" required th:field="${credentials.password}">
<br><br>
<label><b>Repeat Password
</b>
</label>
<input type="Password" name="RPass" id="RPass" placeholder="Password">
<br><br>
<button type="submit" class="btn btn-primary" id="log">Registrati</button>
<div style = "background-color:green">
<a id= "link" th:href="@{/login}" >or login</a>
</div>
</form>
</div>
</body>
但是当我导航到registration.html这是来自Tomcat的错误:
Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException:
An error happened during template parsing (template: "class path resource [templates/register.html]")
我注意到的是,如果我删除了所有th:field
(用于获取用户输入),页面将显示无错误。
我注意到您的凭据类只有用户名和密码
的获取器。
如果百里香叶必须用用户输入来填充它们,你不应该也提供二传手吗?
@Getter
@Setter
@Column(nullable = false, unique = true)
private String username;
@Getter
@Setter
@Column(nullable = false)
private String password;
我不知道我的视图出了什么问题,但它不可能工作,即使设置正确,视图也总是出错。我不知道是否还有其他方法可以做到这一点,但胸腔总是失败。 错误是这样的- 这是我的控制器 我的观点
我尝试使用ThymeLeaf处理模板,但我得到。 这是我的代码: 我试图通过添加这样的前缀来更改路径,但它没有帮助: 此错误可能是由路径问题以外的其他原因引起的吗? 如果需要,我可以给我的项目结构的更多细节。 谢谢 编辑: 这是堆栈跟踪,它可能会有所帮助:
我不明白,如果html模板与我在ModelAndView中获得的属性链接,如何将RESTFull服务的@Controller更改为@RestController 在胸腺叶模板中 但我想进入索引页面,在后台获取用户名 我可以使用ajax来更新标记“p”,但这样使用thymeleaf并没有什么好处,我可以使用jsp。那么,在Rest时使用thymeleaf的最佳方式是什么?它是否合理?
我用百里香模板发送电子邮件。我有一个模板,比如: 如果为空或,我不想发送电子邮件。我可以设置任何Thymeleaf属性来生成错误并且不会发送邮件吗?因为在没有值的电子邮件中发送“My name is”没有任何意义。 我从Thymeleaf上下文中获取所有值,变量可能是不同类型的,例如、等。我也尝试了以下方法,但它并没有解决我的问题,因为对象总是可用的:
我是Springboot的初学者,所以决定在购物车上工作。似乎找不到org.springframework.expression.spel.SpelEvalue ationException: EL1007E的根:在null上找不到属性或字段'name'。嵌套异常是org.thymeleaf.exceptions.TemplateProcessingException: Exception评估Sp
根据thymeleaf安全页面,我可以获取记录的用户名和角色,如下所示: 我有一个Web应用程序,其中身份验证是使用目录完成的,如下所示: 然后,在用户登录后,我有一个标题页面,我在我的所有页面中使用上面的thymeleaf标签来显示用户名,但我想看看是否有办法显示全名。 这里建议的解决方案对我不起作用: 我正在使用: 和使用:<代码> 在类型org . spring framework . se