Java предлагает метку времени ?? ..... DWR - PullRequest
0 голосов
/ 28 июля 2011

Я использую DWR, что довольно плохо для меня ... Я использую ajax для отправки комментария на страницу, и я получил запрос, чтобы посмотреть, могу ли я показать tmestamp при отправке комментария:

В двух словах - в bean-компоненте есть переменная auditable ... которая не заполняется временной меткой, пока не достигнет базы данных. Все в порядке. Мой вопрос ... могу ли я передать что-то одитируемому на лету с помощью ajax, который является своего рода "меткой времени", чтобы вернуться на страницу ????

Спасибо заранее !!!!

вот код:

1009 * JSP *

 You have <strong><span id="commentsCounter">${const['COMMENT_MAX_LENGTH'] - fn:length(commentForm.comment)}</span></strong> characters left.<br/>
            <textarea id="comment" name="comment" rows="2" cols="125" style="width:395px;"
                 onkeypress="characterCounter('commentsCounter',${const['COMMENT_MAX_LENGTH']}, this)"
                 onkeydown="characterCounter('commentsCounter',${const['COMMENT_MAX_LENGTH']}, this)"
                 onkeyup="characterCounter('commentsCounter',${const['COMMENT_MAX_LENGTH']}, this)">
              </textarea>

                    <a href="javascript:addComment();"><img src="../images/icon_add.gif" border="0" alt="Add"/></a>

DWR JAVASCRIPT:

function addComment()
{
    $("#commentErrors").css("visibility", "hidden");

    var obj = {comment:null};
    WhatIfDataAction.addComment(dwr.util.getValues(obj),
            {
                callback:addCommentCallback,
                timeout:60000,
                exceptionHandler:function(msg, e)
                {
                    alert("Error submitting form. " + msg);
                }
            }
        );
}


function addCommentCallback( comment )
{
   if (comment.messages.length > 0)
   {
         //Convert the error messages into an HTML string.
       var html = "";
       for (var i = 0; i < comment.messages.length; i++)
       {
            html += "<tr><td>" + comment.messages[i] + "</td></tr>";
       }
       $("#commentErrors").html(html);
       $("#commentErrors").css("visibility", "visible");
    }
    else
    {
        // Build HTML for new row.
        var html = "<tr id='id"+comment.id+"'><td id='comment-"+comment.id+"'class='wrappable'>" + comment.comment + "</td>" +

                   "<td id='auditable-"+comment.id+"'>" + comment.id + "</td>" +


                   "</tr>"; // three empty TDs for the three actuals fields
        $("#commentRow").before(html);

WHATIFDATAACTION.JAVA:

public CommentForm addComment(Map<String,String> properties) throws Exception
{
    CommentForm form = new CommentForm(properties);
    if (form.validate(this))
    {
        CommentBean bean = form.toBean();
        EntryBean entry = WhatifCache.fetchEntryFromCache(getSession());

        entry.addComment(bean);

        form.setId(bean.getId());
        bean = form.toBean();

    }
    return form;
}

И наконец ... commentBean:

public final class CommentBean
extends AbstractBean
implements Auditable,
BeanCache.CacheableBean

{
private long id;
private long entryId;
private String comment;
private AuditableBean auditable;

/** Description character max length, matches size of description field in db **/
public static final Integer COMMENT_MAX_LENGTH = 250;

public CommentBean()
{
}

@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
{
    id = in.readLong();
    entryId = in.readLong();
    comment = in.readUTF();
    auditable = (AuditableBean)in.readObject();
}

@Override
public void writeExternal(ObjectOutput out) throws IOException
{
    out.writeLong(id);
    out.writeLong(entryId);
    out.writeUTF((comment == null) ? "" : comment);
    out.writeObject( auditable );
}

@Override
public void readSQL(SQLInput in, String typeName) throws SQLException
{
    id = in.readLong();
    entryId = in.readLong();
    comment = in.readString();
    auditable = (AuditableBean)in.readObject();
}

@Override
public void writeSQL(SQLOutput out) throws SQLException
{
    out.writeLong(id);
    out.writeLong(entryId);
    out.writeString(comment);
    out.writeObject( auditable );
}

public long getId()
{
    return id;
}
public void setId(long id)
{
    this.id = id;
}
public long getEntryId()
{
    return entryId;
}
public void setEntryId(long entryId)
{
    this.entryId = entryId;
}
public String getComment()
{
    return comment;
}
public void setComment(String comment)
{
    this.comment = comment;
}
public AuditableBean getAuditable()
{
    return auditable;
}
public void setAuditable(AuditableBean bean)
{
    auditable = bean;
}

public boolean isActive()
{
    return true;
}

public String getKey() 
{ 
    return ""+id; 
}

1 Ответ

3 голосов
/ 28 июля 2011

Вы пытались вернуть new Date().getTime()? Это даст вам текущую дату с точностью до миллисекунды.

Или просто вернуть отформатированную строку даты, например new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS").format(new Date()).

...