- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的基于 Maven 的 MVC Springframework 项目中,我有一个名为 Rentals 的类,我已将其映射到同名的 PostgreSQL 表。在其中,我将 Id 配置为 Serial int,它会针对每个新条目自动递增。我的问题是:如何让 Spring 知道如果它保存一个新的 Rental 对象,它会使用其预定的 id 保存它?
这是我的租赁 java:
@Entity
@Table(name = "rentals")
public class Rentals implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id")
@SequenceGenerator(name="rentals_id_seq", sequenceName="rentals_id_seq", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="rentals_id_seq")
private int id;
// Other column data
// Empty, only id, full and all except id constructors
// Getters and setters, hashcode, equals and tostring
}
我的DAO实现非常简单,它从一个简单的DAO接口(interface)实现,并使用私有(private)SessionFactory sessionFactory
来实现CRUD操作。
我的Service实现也非常简单,它实现了一个Service接口(interface)(它是DAO接口(interface)的精确副本)并使用私有(private)MurDao murDao
来实现CRUD。
这是我的 Controller :
@Controller
public class MurController {
private MurService murService;
@Autowired(required = true)
@Qualifier(value = "murService")
public void setMurService(MurService murService) {
this.murService = murService;
}
// other CRUDs for other entities
@RequestMapping(value = "/rentals", method = RequestMethod.GET)
public String listRentals(Model model) {
model.addAttribute("rental", new Rentals());
model.addAttribute("listUsers", this.murService.getUsers());
model.addAttribute("listMovies", this.murService.getMovies());
model.addAttribute("listRentals", this.murService.getRentals());
return "rental";
}
@RequestMapping(value = "/rentals/add", method = RequestMethod.POST)
public String addRental(@ModelAttribute("rental") Rentals rnt) {
try {
this.murService.getRental(rnt.getId());
this.murService.updateRental(rnt);
} catch (ObjectNotFoundException ex) {
this.murService.addRental(rnt);
}
return "redirect:/rentals";
}
@RequestMapping("/rentals/remove/{id}")
public String removeRental(@PathVariable("id") int id) {
this.murService.deleteRental(id);
return "redirect:/rentals";
}
@RequestMapping("/rentals/edit/{id}")
public String editRental(@PathVariable("id") int id, Model model) {
model.addAttribute("rental", this.murService.getRental(id));
model.addAttribute("listRentals", this.murService.getRentals());
return "rental";
}
}
最后,.jsp:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page session="false" %>
<html><head><title>Rental Page</title><style type="text/css">.tg {border-collapse:collapse;border-spacing:0;border-color:#ccc;}.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#fff;}.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;}.tg .tg-4eph{background-color:#f9f9f9}</style></head>
<body>
<c:url var="addAction" value="/rentals/add" ></c:url>
<form:form action="${addAction}" modelAttribute="rental">
<table>
<tr><td>
<form:label path="iduser">
<spring:message text="ID User"/>
</form:label></td><td>
<form:select path="iduser">
<form:options items="${listUsers}" itemValue="id" itemLabel="fullName"/>
</form:select>
</td></tr><tr><td>
<form:label path="idmovie">
<spring:message text="ID Movie"/>
</form:label></td><td>
<form:select path="idmovie">
<form:options items="${listMovies}" itemValue="id" itemLabel="title"/>
</form:select>
</td></tr><tr><td>
<form:label path="dateof">
<spring:message text="Date Of"/>
</form:label></td><td>
<form:input path="dateof" cssClass="form-control"/></td><td>
<spring:message text="Please use dd-mm-yyyy" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="<spring:message text="Add Rental"/>" />
</td>
</tr>
</table>
</form:form> <br> <h3>Rentals List</h3>
<c:if test="${!empty listRentals}"><table class="tg"><tr>
<th>ID User</th>
<th>ID Movie</th>
<th>Date Of</th>
<th width="60">Delete</th>
</tr><c:forEach items="${listRentals}" var="rental"><tr>
<td>${rental.iduser}</td>
<td>${rental.idmovie}</td>
<td>${rental.dateof}</td>
<td><a href="<c:url value='/rentals/remove/${rental.id}'/>" >Delete</a></td>
</tr>
</c:forEach>
</table></c:if></body></html>
当前发生的情况是,每当我在“添加新租赁”按钮中设置一些信息时,.jsp 都会通过一个新的租赁对象发送,但它的 id 为 0。我不想要这个,我想要创建一个新的Rental,其id为Null或类似的东西,这样spring就知道它必须等待知道给它多少个id,因为它是自动生成和自增量的。
我该如何处理这个问题?为什么jsp通过id为0的对象发送?感谢任何和所有的帮助!
最佳答案
正如 Alan Hay 所评论的,int 原语不能为 null。这正是我所需要的。就在我切换了处理我的 Rental id 的所有整数之后,就发生了这种情况。
Información: Rentals{id=null, iduser=testUser01, idmovie=testMovie01, dateof=Tue Jan 01 00:01:00 CST 2019}
Información: Hibernate: select nextval ('rentals_id_seq')
Información: Hibernate: insert into rentals (dateof, iduser, idmovie, id) values (?, ?, ?, ?)
它已保存到我的数据库中。非常感谢,艾伦海!
关于java - Springframework MVC中保存的自增ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57806481/
我有一个我想暂时存储的对象。该对象现在在 Controller 中, Controller 将生成一个 View 。 AJAX 请求从 View 发送到下一个 Controller 。那一刻我需要先前
从MVC 2开始,我们可以轻松创建区域。现在,我的问题与嵌套区域(区域内部的区域)有关。 选择我的“father”区域文件夹,右键单击> Add> NO选项以获取new Area。 是否有可能以其他方
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我已经尝试了一些谷歌搜索和堆栈流搜索,但事实证明这比我想象的要难找到。我需要为我们的商店迁移到 ASP.NET MVC 2 的管理提供理由。最大的帮助将是任何企业级站点或使用 ASP.NET MVC
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我有一些常见的网页,它们将出现在多个 MVC 应用程序中。对于这些页面,我想在不同的 MVC 网站之间重用相同的源代码( Controller + View )。这样做的最佳方法是什么? ASP.NE
我正在使用 Spring MVC 来构建我的应用程序。 当用户在浏览器中运行应用程序时,我想显示一个默认的 jsp。我不想用 web.xml 中的标记。 我想我可以用 我已经创建了一个文件夹并添
我可能在这里分析过度了,但是根据我对 MVC 的阅读,似乎有很多关于如何做事情的观点。 是否有一个“最佳实践”网站或文档来定义 MVC 各个部分的职责? 请记住,我使用 EF/Repository&U
当杰里米和查德 posted about their FubuMvc project ,他们提到的差异化因素之一是他们的“雷霆穹顶校长”: The “Thunderdome Principle” –
我正在为 Spring MVC 应用程序实现缓存清除系统。 为了让这个系统正常工作,我必须从给定的 url 中删除“缓存破坏代码”。假设我生成的缓存破坏代码是“123”,我有一个 .css url:/
在调试 ASP.NET MVC 源时,我发现使用了“MVC-ControllerTypeCache.xml” 文件。但我无法理解这个文件的用途。我的意思是这个文件存储在哪里?asp.net MVc 如
我刚刚在我的本地机器上安装了 Visual Studio 11 和 MVC 4 beta。但是,每当我打开一个 MVC 3 项目(我想保留为 MVC 3)时,所有引用都已更新为版本 4 DLL。当然它
我有一个 MVC 3 应用程序,它具有一些核心功能(最重要的是自动化),但主要用作不同区域或模块的门户。我想将它组织到不同的模块中,只需稍作更改也可以部署为他们自己的网站。 该项目由论坛、博客引擎、用
我有自己的服务器,正在考虑将我的一个解决方案升级到 ASP.NET MVC 4,然后再升级其余的 (3+)。 作为其中的一部分,我下载了 the standalone installer对于 ASP.
构图 我有一个 MVC 项目,其中包含 C# 类,这些类最终通过 ajax 等进行序列化和使用。我使用 TypeLite 生成这些 C# 类的定义( here 讨论了 TypeLite 的替代方案),
我正在尝试了解现代 Web 应用程序架构。在 ASP.NET MVC 中,所有业务逻辑类都在 Model 中,Controller 接受并引导用户请求。如果我使用它,是否可以使用本身是 MVC 架构但
我有一个带有 OWIN 的 WebAPI 2 应用程序。现在我正在尝试向所有内容添加一个 MVC 5 Controller ,但没有找到我的 MVC 路由。我收到以下错误: No HTTP resou
在 MVC 3 中,他们添加了我一直在使用的依赖解析器。在回答某人对您发表评论的问题时,您应该使用 Ninject MVC 3 插件。 所以我的问题是为什么要使用它而不是内置的?如果这是要走的路,你如
我是 ASP.NET MVC 的新手,我正在寻找最不痛苦的方法来设置全局错误处理、日志记录和报告(通过电子邮件)。仅供引用,我的 ASP.NET MVC 应用程序在 Azure 中作为 Web 角色托
何时使用 MVC View 页面和 MVC View 内容页面?它们有什么区别? 最佳答案 **MVC View Page 用于创建页面,MVC VewP Content Page 用于创建页面并指定
我是一名优秀的程序员,十分优秀!