【问题标题】:Hiding the Date field of an Object in JSP page of Spring MVC在 Spring MVC 的 JSP 页面中隐藏对象的日期字段
【发布时间】:2017-01-24 11:27:00
【问题描述】:

我的 java 类中有一个名为 createdOn 的属性。我希望将其隐藏在前端,以便用户无法设置它(我在后端设置它的值)。但是当我在我的 JSP 页面中使用以下代码行时,我无法将其发布到控制器(从 JSP 发布到控制器的数据在语法上不正确)。

<form:hidden path="createdOn"/> 

在我的 java 类中它看起来像:

public Date getCreatedOn() {
    return createdOn;
}
public void setCreatedOn(Date createdOn) {
    this.createdOn = createdOn;
}

由于我使用相同的表单来编辑字段,所以我必须在 JSP 页面中使用 createdOn 字段(否则它将变为 null)。 我可以通过在 setter 和 getter 方法中将日期格式转换为字符串来解决这个问题,反之亦然。前端本身是否有任何替代解决方案?

【问题讨论】:

  • 当数据被编辑并提交到后端时,您是否在使用新值更新之前从数据库中加载数据?如果您加载数据,createdOn 将具有原始值。
  • 关于隐藏字段 - 它并不是真正隐藏的!用户可以轻松地进行一些浏览器调试、拦截 POST 并更改 createdOn 值。不是那么有趣的故事 - JSP 用于在服务器收到 POST 时收集一些信息并发送电子邮件。好吧,JSP 将收件人电子邮件地址作为隐藏字段,以便服务器进程知道将电子邮件发送到哪里。这是一个公共页面。安全扫描发现该漏洞基本上允许任何人拦截 POST,更改收件人隐藏值,并将服务器用作垃圾邮件机器。
  • 嗨 W-S,我可以将数据从数据库加载到我的 JSP 页面,但是如果我不在前端的任何地方使用 createdOn 字段,那么当我发布修改后它将变为 null数据。所以我试图在前端单独隐藏字段。

标签: java jsp spring-mvc


【解决方案1】:

我有同样的问题,请找到我的意见,我希望它对您的查询有用。

<form:input class="hideinput" path="createdOn" disabled="true" />

【讨论】:

  • 嗨 Komal,它对我不起作用。无论如何感谢您的回答。
  • 如果您希望将其隐藏在前端以便用户无法设置它,这将起作用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多