Question about struts inside javascript variable

S

spallared

Hi, actually i'm using a struts + javascript to create HTML code that
i use inside a popup window...

My (working) code is:

idoc="";
/* var cols =
parent.document.getElementById('rowA').getElementsByTagName('THEAD')
[0].getElementsByTagName('TH'); */
var idoc='<html:form styleId="InsertNewItem" action="/nw/
insertnewitem.do?target='+parent.newPop.action+'">';
idoc+='<TABLE><TBODY>';
var hiddenForm = getParentObj('hidden_data_form');
var cols = hiddenForm.getElementsByTagName('INPUT');
var test;
test="cippa";
for(k = 0; k < cols.length; k++) {
if(cols[k].id.substring(0,3) == "hh_")
{

idoc += "<TR><TD>";
idoc += cols[k].id.substring(3);
idoc += "</TD><TD>";
idoc += '<html:text property="'+cols[k].id+'" value=""/>';
idoc += "</TD></TR>";
}

}

idoc+='</TBODY></TABLE>';
idoc+='</html:form>';
var towr = document.getElementById("subwin_body");
towr.innerHTML = idoc;

The problem is when i try to add a <html:select> to the code, more
precisely i added just before the end of the table these lines:

idoc += "<TR><TD>Ditta:";
idoc += "</TD><TD>";
idoc += '<html:select property="ditta_id">';
idoc += '<html :eek: ptions collection="sel_ditta_list"
labelProperty="label" property="value"/>';

idoc += '</html:select>';
idoc += "</TD></TR>";

.... but i cannot get it to work because struts seems to make some
mistake with quotes and in javascript console window i get this error:

Error: unterminated string literal
File source: http://localhost:8180/nw/jsp/insertNewItemOperatore.jsp
Row: 121, Column: 10
Source Code:
idoc += '<option value="1">1</option>

(note the missing ending single-quote)

I can't understand why because with <html:text> field the same "trick"
works fine... any ideas?

Thanks in advance
Luca
 
S

Sanjay

spallared said:
Hi, actually i'm using a struts + javascript to create HTML code that
i use inside a popup window...

My (working) code is:

idoc="";
/* var cols =
parent.document.getElementById('rowA').getElementsByTagName('THEAD')
[0].getElementsByTagName('TH'); */
var idoc='<html:form styleId="InsertNewItem" action="/nw/
insertnewitem.do?target='+parent.newPop.action+'">';
idoc+='<TABLE><TBODY>';
var hiddenForm = getParentObj('hidden_data_form');
var cols = hiddenForm.getElementsByTagName('INPUT');
var test;
test="cippa";
for(k = 0; k < cols.length; k++) {
if(cols[k].id.substring(0,3) == "hh_")
{

idoc += "<TR><TD>";
idoc += cols[k].id.substring(3);
idoc += "</TD><TD>";
idoc += '<html:text property="'+cols[k].id+'" value=""/>';
idoc += "</TD></TR>";
}

}

idoc+='</TBODY></TABLE>';
idoc+='</html:form>';
var towr = document.getElementById("subwin_body");
towr.innerHTML = idoc;

The problem is when i try to add a <html:select> to the code, more
precisely i added just before the end of the table these lines:

idoc += "<TR><TD>Ditta:";
idoc += "</TD><TD>";
idoc += '<html:select property="ditta_id">';
idoc += '<html :eek: ptions collection="sel_ditta_list"
labelProperty="label" property="value"/>';

idoc += '</html:select>';
idoc += "</TD></TR>";

... but i cannot get it to work because struts seems to make some
mistake with quotes and in javascript console window i get this error:

Error: unterminated string literal
File source: http://localhost:8180/nw/jsp/insertNewItemOperatore.jsp
Row: 121, Column: 10
Source Code:
idoc += '<option value="1">1</option>

(note the missing ending single-quote)

I can't understand why because with <html:text> field the same "trick"
works fine... any ideas?

Thanks in advance
Luca

Did you try adding an extra quote? does it work?
 
L

Lew

spallared said:
Hi, actually i'm using a struts + javascript to create HTML code that
i use inside a popup window...

My (working) code is:

idoc="";
/* var cols =
parent.document.getElementById('rowA').getElementsByTagName('THEAD')
[0].getElementsByTagName('TH'); */
var idoc='<html:form styleId="InsertNewItem" action="/nw/
insertnewitem.do?target='+parent.newPop.action+'">';
idoc+='<TABLE><TBODY>';
var hiddenForm = getParentObj('hidden_data_form');
var cols = hiddenForm.getElementsByTagName('INPUT');
var test;
test="cippa";
for(k = 0; k < cols.length; k++) {
if(cols[k].id.substring(0,3) == "hh_")
{

idoc += "<TR><TD>";
idoc += cols[k].id.substring(3);
idoc += "</TD><TD>";
idoc += '<html:text property="'+cols[k].id+'" value=""/>';
idoc += "</TD></TR>";
}

}

idoc+='</TBODY></TABLE>';
idoc+='</html:form>';
var towr = document.getElementById("subwin_body");
towr.innerHTML = idoc;

The problem is when i try to add a <html:select> to the code, more
precisely i added just before the end of the table these lines:

idoc += "<TR><TD>Ditta:";
idoc += "</TD><TD>";
idoc += '<html:select property="ditta_id">';
idoc += '<html :eek: ptions collection="sel_ditta_list"

Was this copied literally? That extra space before the colon and after the
'o' might be trouble.

First: PLEASE indent your code (using spaces) for readability!

I am surprised that a client-side insertion of JSP tags would work, since JSP
tags are parsed server side.
 
D

david.karr

spallared said:
Hi, actually i'm using a struts + javascript to create HTML code that
i use inside a popup window...
My (working) code is:
idoc="";
/* var cols =
parent.document.getElementById('rowA').getElementsByTagName('THEAD')
[0].getElementsByTagName('TH'); */
var idoc='<html:form styleId="InsertNewItem" action="/nw/
insertnewitem.do?target='+parent.newPop.action+'">';
idoc+='<TABLE><TBODY>';
var hiddenForm = getParentObj('hidden_data_form');
var cols = hiddenForm.getElementsByTagName('INPUT');
var test;
test="cippa";
for(k = 0; k < cols.length; k++) {
if(cols[k].id.substring(0,3) == "hh_")
{
idoc += "<TR><TD>";
idoc += cols[k].id.substring(3);
idoc += "</TD><TD>";
idoc += '<html:text property="'+cols[k].id+'" value=""/>';
idoc += "</TD></TR>";
}
}
idoc+='</TBODY></TABLE>';
idoc+='</html:form>';
var towr = document.getElementById("subwin_body");
towr.innerHTML = idoc;
The problem is when i try to add a <html:select> to the code, more
precisely i added just before the end of the table these lines:
idoc += "<TR><TD>Ditta:";
idoc += "</TD><TD>";
idoc += '<html:select property="ditta_id">';
idoc += '<html :eek: ptions collection="sel_ditta_list"

Was this copied literally? That extra space before the colon and after the
'o' might be trouble.



First: PLEASE indent your code (using spaces) for readability!

I am surprised that a client-side insertion of JSP tags would work, since JSP
tags are parsed server side.

I'm finding it hard to follow exactly what's happening here, but the
last comment here is very important. Emitting tags like "<html:text>"
in javascript will have absolutely no useful impact. Struts tags (and
other tag libraries like it) are processed on the server side, when
the JSP page is compiled into a Java servlet class. These tags are not
interpreted by the browser in any way.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top