Entra

View Full Version : [ AJAX+ JAVA] problemi con il tag display:table


atony85
10-02-2009, 14:53
Sto creando un sito di monitoraggio ed uso una pagina jsp che grazie ad ajax comunica con una servlet scritta in java (scusate per il linguaggio povero).

nella jsp vorrei usare il tag

strHTML +="<ajax:displayTag id='displayTagsId'>";


strHTML +="<display:table name='listLogs' scope='session' export='true' pagesize='100' sort='list' excludedParams='ajax'>";
strHTML +="<display:column property='id' title='ID' sortable='true' />";
strHTML +="<display:column property='title' title='TITLE' sortable='true' />";
strHTML +="</display:table>";

strHTML +="</ajax:displayTag>";

window.divBody.innerHTML = strHTML;

quindi logicamete nella servlet uso il seguente codice:

List<Logs> logsList=new ArrayList<Logs>();
Logs logs1=new Logs();
logs1.setId(1);
logs1.setTitle("titolo 1");
logsList.add(logs1);
Logs logs2=new Logs();
logs2.setId(2);
logs2.setTitle("titolo 2");
logsList.add(logs2);

request.getSession(true).setAttribute("listLogs",logsList);

La chiamata riesce infatti mi vengono stampati tutti i log info solo che il display è sempre vuoto mi esce sempre

nothing found item display

cromatino
10-02-2009, 14:59
anche se non conosco a fondo questo tipo di strategia che hai usato, me ne vado per un'idea in base a quello che so io sulle DisplayTable.

Quando una DT è in sessione, con le nuove librerie della DT, non devi fare name = "listLogs" e scope = "session", ma semplicemente name = "sessionScope.listLogs" e toglierci, quindi, l'attributo scope.

Prova un pò, se non va almeno ci abbiamo provato.

Bye.

atony85
10-02-2009, 15:07
anche se non conosco a fondo questo tipo di strategia che hai usato, me ne vado per un'idea in base a quello che so io sulle DisplayTable.

Quando una DT è in sessione, con le nuove librerie della DT, non devi fare name = "listLogs" e scope = "session", ma semplicemente name = "sessionScope.listLogs" e toglierci, quindi, l'attributo scope.

Prova un pò, se non va almeno ci abbiamo provato.

Bye.

Niente...grazie per l' aiuto ma esce sempre la stessa cosa

atony85
10-02-2009, 15:16
Vi scrivo parte del sistema che interessa

JSP

<%@taglib uri="http://displaytag.sf.net" prefix="display"%>
<%@ taglib uri="http://ajaxtags.sourceforge.net/tags/ajaxtags" prefix="ajax"%>


<script language='javascript'><!--

function inserisciSessione()
{
executeAjax("<%=request.getContextPath()%>"+"/XteAdminServlet?method=inserisciSessione");
}


function onLoad()
{
Istruzioni()
}


function Istruzioni()
{

inserisciSessione();

var strHTML = "";
strHTML += "<br/>";
strHTML += "<br/>";

strHTML +="<ajax:displayTag id='displayTagsId'>";


strHTML +="<display:table name='sessionScope.listLogs' export='true' pagesize='100' sort='list' excludedParams='ajax'>";
strHTML +="<display:column property='id' title='ID' sortable='true' />";
strHTML +="<display:column property='title' title='TITLE' sortable='true' />";
strHTML +="</display:table>";

strHTML +="</ajax:displayTag>";

window.divBody.innerHTML = strHTML;

}



--></script>

<body onLoad='JAVASCRIPT:onLoad();'>


ajax.js



var xhr;


function executeAjax(url) {

// loading the xml calling php script
if (window.ActiveXObject) {
//IE
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} else {
// other browsers
xhr = new XMLHttpRequest();
}

try
{
// xhr.open("GET", url, false); //was get
xhr.open("POST", url, false); //was get
}
catch (e)
{

return;
}

xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("Pragma", "no-cache");

xhr.onreadystatechange = function() {



if (xhr.readyState == 4)
{
if (xhr.status == 200) {
if (xhr.responseText.length == 0) {

} else
{

}

}
else
{


}




}
}

xhr.send(null);

}



servlet


protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

String method = request.getParameter("method");



if (method.compareToIgnoreCase("inserisciSessione") == 0)
{
List<Logs> logsList=new ArrayList<Logs>();
Logs logs1=new Logs();
logs1.setId(1);
logs1.setTitle("titolo 1");
logsList.add(logs1);
Logs logs2=new Logs();
logs2.setId(2);
logs2.setTitle("titolo 2");
logsList.add(logs2);

request.getSession(true).setAttribute("listLogs",logsList);

return;
}

atony85
11-02-2009, 09:10
Ragazzi nessuno mi può aiutare.....non riesco a risolvere il problema grrrr