java - 如何在 Spring 中创建数据更改表单

标签 java spring forms spring-mvc

我正在尝试创建一个表单,以便用户在我的网络应用程序中更改其自己的私有(private)数据(地址、年龄...):

  • View :

    public class UserDetailsView {
    
        private Long userId;
        private String name;
        ...
    }
    

    在表单页面的@GetMapping中,我将所有用户数据加载到表单 View ,然后将加载的 View 发送到Thymeleaf并创建最终的HTML,所有这个过程都运行良好。

  • 我的问题是:

出于显而易见的原因,表单没有 userId 变量的字段,并且我不想为 ID 创建隐藏字段,以避免恶意用户可以轻松更改 userId 字段。

  • 我的问题是:

如何在服务器端保留相同的UserDetailsView实例来保留userId变量内容,只需更改表单中与字段相关的变量?实际上,我的解决方案是在数据库中搜索登录用户以获取其 ID,然后更新 UserDetails 表。

最佳答案

如果用户只能更改与自己相关的数据,只需将 userId(以及可能在应用程序中可能需要的其他用户详细信息)保留在 session 中即可。

关于java - 如何在 Spring 中创建数据更改表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250256/

相关文章:

java - 如何使用 log4j 将错误消息和信息消息分别记录到系统日志中?

java - Spring Boot 中的 Junit Test 不注入(inject)服务

java - 使用 <c :import> with spring views 的可能性

javascript - 如何在javascript中获取Kartik radioList的检查值

javascript - 当隐藏元素显示在屏幕上时重新运行函数

php - AJAX PHP文件上传和解析示例

java - JDBC ResultSet 关闭语句

java - 从线程访问主 Activity 中的变量

添加到列表时抛出 java.util.ConcurrentModificationException

java - "Bean name must not be empty"具有 bean 名称的 spring bean 错误