It's not a secret anymore!*
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
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
internet detective
Marshal

Joined: May 26, 2003
Posts: 30116
    
150

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
internet detective
Marshal

Joined: May 26, 2003
Posts: 30116
    
150

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
 
Similar Threads
Struts: Getting a blank page instead of the form
Need help selected text fields visible for particular option from drop down list in JSP(struts)
Struts 1.x, 2, jstl questions
Information lost on error.
DOM scripting - new rows in a table