Forum


20:57

15/03/2011

I've a problem with a jqGrid.
I'had built json method for retrieve records from database table. This method is always throws 2 times.
struts.xml
<package name="PLogView" extends="struts-default">
<action name="log" class="appl.LogAction" method="initLog">
<result name="success">/jsp/logs.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
</package>
<package name="PLogJqgrid" extends="json-default">
<action name="log_jqgrid" class="appl.LogAction" method="getList">
<result name="success" type="json" />
<result name="error" type="json" />
</action>
</package>
LogAction.java - method getList()
public String getList() {
String title = getText("log.title.list");
String result = ActionSupport.SUCCESS;
SqlSession sqlSession = null;
try {
Map<String, Object> session = ActionContext.getContext().getApplication();
sqlSession = ((SqlSessionFactory) session.get("sqlFactory")).openSession(true);
// Count all logs record
setRecords((Integer) sqlSession.selectOne("getCountLogs"));
// Calucalate until rows ware selected
int to = (getRows() * getPage());
// Set to = max rows
if (to > getRecords()){
to = getRecords();
setPage(getTotal());
}
// Calculate the first row to read
int from = to - getRows();
// Set to = max rows
if (from < 0)
from = 0;
// Retrieve logs records
HashMap<String, Integer> params = new HashMap<String, Integer>();
params.put("from", from);
params.put("to", to);
setLogsList(sqlSession.selectList("getLogs", params));
// Calculate total pages
setTotal((int) Math.ceil((double) getRecords() / (double) getRows()));
} catch (Exception e) {
addActionError(getText("read.error", getTextElements(title)));
setError(getText("read.error", getTextElements(title)));
logger.error(e.getMessage(), e);
result = ActionSupport.ERROR;
} finally {
try {
if (sqlSession != null) {
sqlSession.close();
}
} catch (Exception e) {
logger.error("Generic exception during close database session", e);
}
}
return result;
}
log.jsp
<html>
<head>
<title><s:text name="application.title"/></title>
<jsp:include page="include/header.jsp" flush="false"></jsp:include>
<script type="text/javascript">
jQuery(document).ready(function()
{
// Refresh log list
function rowsrefresh(event, data)
{
$("#list").trigger("reloadGrid");
}
jQuery("#list").jqGrid
({
url: 'log_jqgrid',
datatype: 'json',
datastr: 'logsList',
mtype: 'POST',
height: '230px',
autowidth: true,
rowNum: 10,
rowList: [],
viewrecords: true,
pager: jQuery('#pager'),
jsonReader: {root: 'logsList', repeatitems: false},
colNames:
[
'<s:text name="log.grid.colName.username"/>',
'<s:text name="log.grid.colName.action"/>',
'<s:text name="log.grid.colName.datetime"/>',
],
colModel:
[
{name:'username', editable:false, hidden:false, sortable:false},
{name:'action', editable:false, hidden:false, sortable:false},
{name:'actiontime', editable:false, hidden:false, sortable:false}
]
}).navGrid("#pager", {refresh:false, add:false, edit:false, del:false, search:false})
.navButtonAdd("#pager", {caption:'', title:'<s:text name="function.refresh"/>', buttonicon:'ui-icon-refresh', onClickButton:function (event, data) {rowsrefresh();}});
</head>
<body>
<div id="main">
<table id="list" class="scroll"></table>
<div id="pager" class="scroll"></div>
</div>
</body>
</html>
Give me a hand, please ?
Thanks in advance,
mariusv5.
Most Users Ever Online: 715
Currently Online:
94 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66