wood burning stoves 2.0*
The moose likes Struts and the fly likes Question about struts inside javascript variable Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Question about struts inside javascript variable" Watch "Question about struts inside javascript variable" New topic
Author

Question about struts inside javascript variable

Luca Spallared
Greenhorn

Joined: May 04, 2007
Posts: 2
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 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

[ May 04, 2007: Message edited by: Luca Spallared ]
[ May 04, 2007: Message edited by: Luca Spallared ]
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30789
    
157

Those three lines of Struts code produce the output by themselves and can't be split up. Try something like this:

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


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Merrill Higginson
Ranch Hand

Joined: Feb 15, 2005
Posts: 4864
The difference between <html:text> and <htmlptions> is that <htmlptions> generates multiple lines of HTML code, whereas <html:text> only generates one line. When Struts is generating these multiple lines of code separated by carriage returns, it doesn't know that you've included it in a JavaScript quoted string, so it doesn't know to enclose each line in quotes. That's why it's not working.

At the moment, I can't think of a way to make this work with Struts tags. Maybe someone else will post a possible solution. Unless someone does, I'd suggest using plain old HTML tags for your select/option tags rather than Struts tags.
[ May 04, 2007: Message edited by: Merrill Higginson ]

Merrill
Consultant, Sima Solutions
Luca Spallared
Greenhorn

Joined: May 04, 2007
Posts: 2
Originally posted by Jeanne Boyarsky:
Those three lines of Struts code produce the output by themselves and can't be split up. Try something like this:

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


Thanks for your reply but it didn't resolve the problem.
Seems that Struts html ptions statement cut everything follows the tag and this is bad..

BTW: Error is still...

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

Luca
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30789
    
157

Luca,
Can you post the code you are using now?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Question about struts inside javascript variable