Skip to content

Instantly share code, notes, and snippets.

@UshaRani
Created November 30, 2011 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save UshaRani/1410125 to your computer and use it in GitHub Desktop.
Save UshaRani/1410125 to your computer and use it in GitHub Desktop.
<%-- Already existing code to retrieve the values from memberLoginHistoryMap object without converting jsonstring -- --%>
<div id="accordion" style="width: 850px;">
<gs:iterator value="memberLoginHistoryMap">
<h3><a href="#" style="padding-bottom: 0;">Date: <gs:date name="key" format="MMM-dd-yyyy"/></a></h3>
<table class="loginHistoryList" border="0" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th align="center">Member</th>
<th align="center">Organization</th>
<th align="center">Last Modified</th>
<th align="center">Login Time</th>
<th align="center">IP Address</th>
<th align="center">Browser Details</th>
</tr>
</thead>
<gs:if test="%{!value.isEmpty()}">
<gs:iterator value="value" var="memberDetails">
<tr>
<td align="center"><gs:property value="value.memberemail" /></td>
<td align="center"><gs:property value="value.organization.organizationname" /></td>
<td align="center"><gs:date name="key.lastmodified" format="MMM-dd-yyyy H:m:s" /></td>
<td align="center"><gs:date name="key.memberlogintime" format="MMM-dd-yyyy H:m:s" /></td>
<td align="center"><gs:property value="key.ipaddress" escape="false" /></td>
<td align="center"><gs:property value="key.browserdetails" escape="false" /></td>
</tr>
</gs:iterator>
</gs:if>
<gs:else>
<tr>
<td align="center" colspan="6">Currently there are no online users in the system</td>
</tr>
</gs:else>
</table>
</gs:iterator>
</div>
<%-- newly added lines to retrive the values from jsonString which contains memberLoginHistoryMap object --%>
<script type="text/javascript">
<%-- Trying to get values from jsonString ,need help in retriving the values--%>
var memberhistorymap = jQuery.parseJSON('<gs:property value="jsonString" escapeJavaScript="true" escape="false"/>');
console.log(memberhistorymaps);
jQuery.each(memberhistorymap, function(currentHistoryDate, memberLoginDetails) {
console.log(currentHistoryDate);
console.log(memberLoginDetails);
jQuery.each(memberLoginDetails,function(memberloginhistory,member){
console.log(memberloginhistory.lastmodified);//in console showing undefined.
console.log(member);
});
console.log("------------");
});
alert("hi");
console.log(memberhistorymapstring);
</script>
// this is already existing code
for (Memberloginhistory memberloginhistoryFromDB : memberLoginHistoryListFromDB) {
parsedBrowserDetails = memberloginhistoryFromDB.getBrowserdetails();
parsedBrowserDetails = UserAgentUtil.getBrowser(parsedBrowserDetails)[2] + " on "
+ UserAgentUtil.getOS(parsedBrowserDetails)[1];
Member member = memberBO.getById(memberloginhistoryFromDB.getMember().getId());
// Memberloginhistory object values have to retrive in jsp.
Memberloginhistory memberloginhistory = new Memberloginhistory(member, memberloginhistoryFromDB.getLastmodified(), memberloginhistoryFromDB.getIpaddress(), memberloginhistoryFromDB.getMemberlogintime(),
parsedBrowserDetails, memberloginhistoryFromDB.isOnline());
if (!GSDate.isEqual(currentHistoryDate, memberloginhistory.getMemberlogintime())) {
if (currentHistoryDate != null) {
memberLoginHistoryMap.put(currentHistoryDate, memberLoginDetails);
}
currentHistoryDate = memberloginhistory.getMemberlogintime();
memberLoginDetails = new TreeMap<Memberloginhistory, Member>(new Comparator<Memberloginhistory>() {
@Override
public int compare(Memberloginhistory date1, Memberloginhistory date2) {
if ((date1.getMemberlogintime()).before(date2.getMemberlogintime())) {
return 1;
}
if ((date1.getMemberlogintime()).after(date2.getMemberlogintime())) {
return -1;
}
return 0;
}
});
}
memberLoginDetails.put(memberloginhistory, member);
}
memberLoginHistoryMap.put(currentHistoryDate, memberLoginDetails);
// existing code end.
// these are the lines added to convert memberLoginHistoryMap object to json string .
// To excute these lines action is taking more time.
Gson jsonResponse = new Gson();
jsonString = jsonResponse.toJson(memberLoginHistoryMap);
// in jsp i am trying to retrive values from this jsonString
long actionendTime = System.currentTimeMillis();
System.out.println("Time taken to execute total action" + (actionendTime - actionstartTime));
return SUCCESS;
}
public String getJsonString() {
return jsonString;
}
public void setJsonString(String jsonString) {
this.jsonString = jsonString;
}
}
@tankchintan
Copy link

In https://gist.github.com/1410125#file_recentloginhistory.jsp line 43 should be >>> console.log(memberhistorymap); // notice the singular memberhist...
rest ooks file in that snippet. It would also be helpful to see the output of the different console.of output.

In https://gist.github.com/1410125#file_recent_login_history_action.java how did you verify that the json string is taking long time? I dont see you initializing the timeStart just before the "toJson" method is called. Can you give me the output of the time it takes to get to the toJson method & the time it takes after that point un till after you have set the value of "jsonString".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment