gpt4 book ai didi

java - 从 JSP 到 JAVA 再到 PSQL 的日期处理

转载 作者:行者123 更新时间:2023-12-01 15:17:49 24 4
gpt4 key购买 nike

当我使用 JSP 表单写入 PostgreSQL 时,处理日期变量时遇到问题。有一些很棒的提示,但仍然无法正确执行。我相信我将一个字符串从 JSP 传递到 JAVA,其中它是在“无时区日期”列上写入 PSQL 的日期“setter”和“getter”。

以下是与日期相关的 JSP 代码部分:

....(一些代码)....

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");

....(模式代码)....

<%

if (action.equals("add")) {
.
.
.

newCampaign.setCampempDate(dateFormat.parse(request.getParameter("campemp")));

newCampaign.add();
}
%>

....(更多代码)....

               <input name="campemp" type="text" class="datePickBox" id="campemp"
onBlur="javascript:checkFormat(this)" value="<%= defaultCampaign.getCampempDate() != null
? dateFormat.format(defaultCampaign.getCampempDate()) : dateFormat.format(new
java.util.Date()) %>" size=20>

...(其余代码)....

值得一提的是,在输入中我还使用了一个以正确格式传递日期的日历...这是我在 JSP 端使用日期字段的另一个原因。

在JAVA端:

....(一些代码)....

  private java.util.Date campemp= null; 

private SimpleDateFormat userDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

...(更多代码)...++ 设置和获取++

public void setCampempDate(java.util.Date aCampemp) {    
this.campemp= aCampemp;
}


public java.util.Date getCampempDate() {
return this.campemp;
}

...(更多代码)...++ LOAD++

  public void load(ResultSet rs) throws SQLException {
this.setId(rs.getLong("campkeydbid"));
.
.
this.setCampempDate(rs.getDate("campemp"));
}

...(更多代码)...++ 写入数据库++

public boolean add() throws SQLException {
boolean success = false;
if (costingEnabled) {
String call = "select " + getStoredProcedureMapper().getPrefix() + "_Add(?,?,?,?,?,?,?,?,?,?)";
DataSource ds = PoolMan.findDataSource("mydatabase");
Connection conn = null;
try {
conn = ds.getConnection();
PreparedStatement pst = conn.prepareStatement(call);
.
.
pst.setTimestamp(10, new Timestamp(this.getCampempDate().getTime()));
ResultSet rs = pst.executeQuery();
if (rs.next()) {
.
.

...(更多代码)...

存储过程中的“_Add”是正确的,因为如果我“硬编码” pst.SetTimestamp 上的日期,它就可以工作

我收到的错误如下:

org.apache.jasper.JasperException:无法将属性“campemp”的字符串“04/07/2012 19:12”转换为类“java.util.Date”:属性编辑器未在 PropertyEditorManager 中注册

任何关于在不影响数据库日期字段和 JSP 输入的情况下将字符串解析为日期的解决方法的想法将不胜感激。非常感谢。

问候,

最佳答案

org.apache.jasper.JasperException: Unable to convert string "04/07/2012 19:12" to class "java.util.Date" for attribute "campemp": Property Editor not registered with the PropertyEditorManager

您正在以 04/07/2012 19:12 格式在 String 中传递Date,因此您需要使用

dd/MM/yyyy HH:mm

从您发布的代码来看,您似乎正在使用

private SimpleDateFormat userDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

作为SimpleDateFormat中的格式

关于java - 从 JSP 到 JAVA 再到 PSQL 的日期处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com