2011-07-28 13 views
0

DWRを使用しています。私はかなり新しいです...私はajaxを使用してページにコメントを投稿しました。私はtmestampコメントが提出されたとき:Javaはタイムスタンプを提供していますか?..... DWR

--- Beanにはauditableという変数があります。この変数にはデータベースにヒットするまでタイムスタンプが設定されていません。それはいいです。私の質問...私はAJAXを使ってオンザフライで監査可能なものに何かを渡すことができますか?それはページに戻るための一種の「タイムスタンプ」ですか?

事前に太もも!!!!

相続コード:

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; 
} 

答えて

3

new Date().getTime()を返そうとしましたか?これにより、ミリ秒精度で現在の日付が得られます。

new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS").format(new Date())のように書式設定された日付文字列を返すだけです。

+0

いい質問...私はそれを試してみましょう –

関連する問題