Ciao Valia,
il form lo precompilo io prendendo dati da un DB, quindi non utilizzo nessuna libreria esterna, semplicemente vado a riempire un div vuoto con codice html+dati che passo da una servlet. I dati li gestico con jquery, perchè effettuo una chiamata asincrona. I dati sul DB vengono salvati correttamente, quindi se viene inserita una stringa con spazi, viene salvata con spazi, il problema si presenta quando effettuo il caricamento del dato per popolare la form "precompilata". Quindi nel DB ho il valore salvato correttamente, ma nella form ho il valore troncato.
questa è la porzione di codice:
metodo servlet
Codice PHP:
private void getInteraction(HttpServletRequest request) throws Exception
{
InteractionObj singleObj= new InteractionObj();
InteractionObjUI singleUI = new InteractionObjUI();
try
{
int id= Integer.parseInt(request.getParameter("ID"));
singleObj = DpInteractionObj.getInteractionObject(id);
singleUI.setInteractionName(singleObj.getInteractionName());
singleUI.setInputValuesReference (singleObj.getInputValuesReference());
singleUI.setRemoteWSUrl(singleObj.getRemoteWSUrl());
StringBuilder buffer = new StringBuilder();
buffer.append(singleUI.toHtmlString("htmlFormReadOnly"));
buffer.append("<div id=\"newParUpdate\">" + "</div>");
buffer.append("<div align=\"right\">");
buffer.append("<button id=\"buttonMoreUpdate\" class=\"ui-icon-circle-plus\"> Add more parameters </button>");
buffer.append("</div>");
out.print(buffer.toString());
}
catch(Exception e)
{
}
out.flush();
out.close();
}
questo è il metodo che costruisce l'html:
Codice PHP:
else if("htmlFormReadOnly".equalsIgnoreCase(type))
{
return
"<div><label for=\"wsInteractionName-NewUp\">Name (3-50)</label></div><input readonly=\"readonly\" id=\"wsInteractionName-NewUp\" type=\"text\" name=\"wsInteractionName-New\" class=\"text ui-widget-content ui-corner-all\" value="+ super.getInteractionName()+" >"+"</input>"+
"<div><label for=\"wsInteractionUrl-NewUp\">WS URL (30-255)</label></div><input id=\"wsInteractionUrl-NewUp\" type=\"text\" name=\"wsInteractionUrl-New\" class=\"text ui-widget-content ui-corner-all\" value="+ super.getRemoteWSUrl() +" >"+"</input>"+
"<div><label for=\"wsInteractionValue-NewUp\">Reference Value (0-512)</label></div><input readonly=\"readonly\" id=\"wsInteractionValue-NewUp\" type=\"text\" name=\"wsInteractionValue-New\" class=\"text ui-widget-content ui-corner-all\" value="+ super.getInputValuesReference() +">" +"</input>";
}
questa è la funzione jquery con la quale implemento e gestisco la form:
Codice PHP:
function update(id, nameParam)
{
$('#update').dialog("open");
$(function()
{
refValueGlob = nameParam;
idUpdate = id;
$.post('ServiceWSInteractionServlet', {REQUEST: 'getSingleObj', ID:id},
function(data)
{
$('#update').dialog(
{
autoOpen: true,
modal:true,
buttons:
{
"Update": function()
{
getNewParUpdate(countGlob, idUpdate);
$('#divTableContainerParameter').animate({"height":"toggle"},{queue: false, duration:1000});
$(this).dialog("close");
addActionResults("Update Settings", "update");
refresh();
},
"Close": function()
{
$(this).dialog("close");
}
}
});
$('#update').empty();
$('#update').html(data);
makeButton();
makeClikkableButton();
return false;
});
});
}
per risolvere il problema in maniera rapida, ho inserito un replace dello spazio vuoto con il carattere "_", ma vorrei risolvere in modo tale da poter dare all'utente la possibilità di inserire stringhe con spazi. Grazie per la risposta
Salvatore