@将有效的打印信息发送到控制台,但不发送到页面
@Controller
public class RoomsController {
private final HotelService hotelService;
private final ComfortService comfortService;
private final RoomService roomService;
@Autowired
public RoomsController(HotelService hotelService, ComfortService comfortService, RoomService roomService) {
this.hotelService = hotelService;
this.comfortService = comfortService;
this.roomService = roomService;
}
@GetMapping("/admin/deleteRoom")
String showDeleteRoomPage(@ModelAttribute("formData") DeleteRoomFormData formData){
return "deleteRoom";
}
@PostMapping("/admin/deleteRoom")
String doDeleteRoom(@Valid @ModelAttribute("formData")DeleteRoomFormData formData, Model model, BindingResult bindingResult){
if (bindingResult.hasErrors()) {
return "deleteRoom";
}
roomService.deleteRoomByNumberAndHotelName(formData.toParameters());
return "redirect:/";
}
}
public class DeleteRoomFormData {
@NotNull
@Range(min = 1, max = 300)
private int number;
@NotNull
@Size(min = 4, max = 400, message = "Minimum number of characters = 4" )
private String hotelName;
public RoomDeleteParameters toParameters(){
return new RoomDeleteParameters(number,hotelName);
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getHotelName() {
return hotelName;
}
public void setHotelName(String hotelName) {
this.hotelName = hotelName;
}
}
package ua.forms;
import ua.models.Hotel;
public class RoomDeleteParameters {
private final int number;
private final String hotelName;
public RoomDeleteParameters(int number, String hotelName) {
this.number = number;
this.hotelName = hotelName;
}
public int getNumber() {
return number;
}
public String getHotelName() {
return hotelName;
}
}
<div class="card-body">
<form class="form-horizontal" data-th-action="@{/admin/deleteRoom}" data-th-object="${formData}" method="post">
<div class="errors">
<div th:utext="${errorMessage}" data-th-if="${error}" class="alert alert-danger" role="alert">
</div>
</div>
<div class="form-group">
<label for="hotelName" class="cols-sm-2 control-label">Hotel Name</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope fa" aria-hidden="true"></i></span>
<input type="text" class="form-control" name="hotelName" id="hotelName" placeholder="Enter hotel name" data-th-field="*{hotelName}"/>
</div>
<p style="color:red" th:if="${#fields.hasErrors('hotelName')}" th:text="${#strings.listJoin(#fields.errors('hotelName'), ', ')}"></p>
</div>
</div>
<div class="form-group">
<label for="number" class="cols-sm-2 control-label">Hotel Name</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope fa" aria-hidden="true"></i></span>
<input type="text" class="form-control" name="number" id="number" placeholder="Enter number" data-th-field="*{number}"/>
</div>
<p style="color:red" th:if="${#fields.hasErrors('number')}" th:text="${#strings.listJoin(#fields.errors('number'), ', ')}"></p>
</div>
</div>
<div class="form-group ">
<input type="submit" value="Delete">
</div>
</form>
</div>
当我的字段有错误@Valid print info到控制台时,为什么不在第页?
字段hotelName上的对象formData中的字段错误:拒绝的值[];代码[Size.formData.hotelName, Size.hotelName, Size.java.lang.String, size];参数[org.springframework.context.support.DefaultMessageSourceResolable:代码[formData.hotelName, hotelName];参数[];默认消息[hotelName],400,4];默认消息[最小字符数=4]字段'Number'上的对象formData中的字段错误:拒绝的值[0];代码[Range.formData.number, Range.number, Range.int, Range];参数[org.springframework.context.support.DefaultMessageSourceResolable:代码[formData.number, Number];参数[];默认消息[Number],300,1];默认消息 [должно находиться в диапазоне от 1[300]]
BindingResult
参数需要遵循@ModelAtalty
参数才能工作。因此,将您的@PostMap
更改为:
@PostMapping("/admin/deleteRoom")
String doDeleteRoom(@Valid @ModelAttribute("formData")DeleteRoomFormData formData, BindingResult bindingResult, Model model){
if (bindingResult.hasErrors()) {
return "deleteRoom";
}
roomService.deleteRoomByNumberAndHotelName(formData.toParameters());
return "redirect:/";
}
将“然后向我显示页面”这一行添加到cucumber场景中,在我同事的计算机上使用相同的设置,但在我的计算机上则不然。实际上,添加暂停步骤定义并调用它似乎被完全忽略了。 步骤定义: 功能: 命令行: 使用Firefox 16.02(避免17中的错误) 两台机器都有git-fetch'd,拉取,捆绑安装,所以所有的宝石都是相同的,都使用Rbenv版本* 1.9.3-p327-perf。我可能错过了一些
我在Tomcat 8.x web服务器上使用JAAS和基于表单的web身份验证。用户在尝试登录时被拒绝访问的原因有很多: 无效的用户名 密码无效 在数据库中没有帐户 数据库中的帐户未激活 数据库中的帐户没有必需的角色 等…… 在我的LoginModule中,我检查所有这些条件以及更多条件,如果不允许用户访问web应用程序,就会抛出LoginException。JAAS似乎捕捉到了抛出的LoginE
我正在做一个项目,我对rails很陌生, 我完全搞不清楚出了什么问题。我得到这个错误。 产品中的命名错误#索引 未初始化常量ProductsController::Offer 本质上,我有一个我试图实现的功能。 在我的产品表中,我有一个名为保留价格的列,我希望用户在产品页面的表单上提交一个数字,然后根据保留价格对其进行验证,如果接受,则将其添加到购物车中,如果不是flash,请输入更高的报价, 问
我有一个简单的项目使用QUUKUS 1.4.2。当我使用@Valid注释时,验证失败,状态为500,异常不会在控制台上显示。仅在Swagger UI中。我应该怎么做才能在控制台上打印出来? 正在发生的例外情况是: 错误是正确的。只是没有显示在控制台上。
因此,很明显,它识别出输入的名称太短,但我在视图中没有得到任何错误消息,正如这里所预期的:。
我已经实现了Omnifaces FullAjaxExceptionHandler,但问题是它不能处理ajax请求。在会话到期后,当我单击非ajax按钮时,它工作得很好。它将用户重定向到自定义错误页面。但是,如果按钮使用ajax,那么它什么都不做。佩奇只是个傻瓜。 编辑:我已将ActionListener更改为Action,但仍然相同。 编辑2:没有错误。ApacheTomcat输出和ApacheT