java - 如何将html输入值从表单传递到数据库(Springboot)

标签 java html spring spring-boot

我有一个本地 Oracle 数据库,已与其建立了牢固的连接。现在我只想使用 Controller 从 HTML 输入表单发布数据来处理所述数据。

我的表单如下所示:

<form action="/request/save" method="post">
    <input type="text" id="dateInput" name="requestDate" value="1" style="display: none;"/>
    <input type="text"  name="description" value="This is a test request." style="display: none;"/>
    <input type="text" name="status" value="false" style="display: none;"/>
    <div style="width: 200px;"><input type="submit" value="Submit Request" style="display: block;"></div>
 </form>

Controller :

@RequestMapping(value = "/save", method = RequestMethod.POST)
    String saveRequest(Principal principal, @ModelAttribute Request request, Model model) {
        // Set UserId to Request Field USER_ID
        Users user = usersRepository.findOneByInitialName(principal.getName());
        Request requestObj = new Request(user, new Date());
        requestObj.setId(user.getId());

        // Set Additional Request Fields
        requestObj.setDescription("Test");
        requestObj.setStatus(false);
        requestObj.setRequestDate(new Date());

        // Save Request Object
        requestRepository.save(requestObj);
        return "requests";
    }

实体(用于完成):

@Entity
public class Request {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="request_id")
    private Long id;
    private Date requestDate;
    private String description;
    private Boolean status;
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="user_id", nullable = false)
    private Users users;

    public Request() {}

    public Request(Users user, Date requestDate) {
        this.setUsers(user);
        this.setRequestDate(requestDate);
    }

    @Override
    public String toString() {
        return String.format(
                "Request[id=%d, inital='%s', requestDate='%s']",
                getId()
                , getUsers().getInitialName()
                , getRequestDate());
    }


    public Date getRequestDate() {
        return requestDate;
    }

    public void setRequestDate(Date requestDate) {
        this.requestDate = requestDate;
    }

    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Users getUsers() {
        return users;
    }

    public void setUsers(Users users) {
        this.users = users;
    }
}

如何将表单中的数据发送到我的数据库?

错误:

Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.

最佳答案

您可能已在 web.xml 中配置了 csrf 过滤器,因此您需要在请求 header 中传递“X-CSRF-TOKEN”。

关于java - 如何将html输入值从表单传递到数据库(Springboot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115370/

相关文章:

java - 我应该如何在Java中暂时表示内存中的文件?

javascript - 按钮更新node.js和HTML

html -::之前和不可见的背景图像

java - Shiro中如何从多个领域中获取特定领域进行授权?

java - Spring Boot 和多个数据库

Java LR 或 LL 解析

java - Rxjava2 : flatmap usage

java - Mahout 中 DataModel 与 FileItemSimilarity 的使用

jquery - 在大量 DIV 上实现悬停状态的更快方法

java - Spring TestRestTemplate 没有正确 Autowiring