[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

struts: how can the list being retrieved from new window

Posted on 2006-07-24
13
Medium Priority
?
669 Views
Last Modified: 2010-04-01
xxxaction.java already set the list such that session.setAttribute("xxxlist", list). How can the list being retrieved from new window opened by javascipt newwin? Using <logic:iterate> to retrieve the list get null pointer exception.
0
Comment
Question by:jeff1919
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
13 Comments
 
LVL 6

Expert Comment

by:Holger101497
ID: 17167096
We need some more information:

Does your <logic:iterate> work in the main window?

Do both windows use the same session? (i.e. if you're not using cookies, you have to pass the session in the URL, for example).
Just try "session.getAttribute("xxxlist")" in the new JavaScript window and see it it's really there!

Other than that, there should be no problem printing the list in a popup window if it's stored in the session and not the request...
0
 
LVL 29

Accepted Solution

by:
bloodredsun earned 1000 total points
ID: 17171045
Use JSTL not the logic libs as this is what is recommended by the struts developers.

It would be this:

<c:forEach var="myitem" items="${sessionScope.xxxlist}">
    <c:out value="${myitem}"/>
</c:forEach>

As long as the value exists, it will be displayed.
0
 

Author Comment

by:jeff1919
ID: 17172869
session.getAttribute("xxxlist") also returns null in new window. Had no problem retrieved the data from the list in main window.

jstl is not allowed to use.  
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 6

Assisted Solution

by:Holger101497
Holger101497 earned 1000 total points
ID: 17172898
well... it seems like you're losing your session then. Do all your other links contain a session parameter? If so, you might need to use response.encodeURL(sUrl) to pass the session to the popup-window...

If you're using (session) cookies, the popup window must be on the exact same domain to receive the cookie. What is the exact URL of the calling page (please post if possible) and what is the exact URL (including full domain) of the popup-window? (please check with the "page information"; depending on which browser you're using).

Even for something silly like the main page on "localhost" and the popup on "127.0.0.1", you will lose the session information.

ok, I have to go to bed now! I'll check back later... Good luck :-)
0
 

Author Comment

by:jeff1919
ID: 17177634
i have found new window contains different session id. Response.encodeURL returns the same url without attached session id on it. (ps: url = popupxxx.jsp)
0
 
LVL 6

Expert Comment

by:Holger101497
ID: 17178361
So we're getting closer to the real problem :-)

Can you show us the command that creates the popup-code and the generated page source for the popup?
Also: What is the URL of the calling page (as displayed in your browser), do you use "<base href='...'>" in your page and what is the URL of the popup?
0
 

Author Comment

by:jeff1919
ID: 17180827
The following is the code calling the popup window.

<td width=100 height=20 class="font1" style="border-top:solid #336699 .5pt;border-bottom:solid #336699 .5pt;border-left:solid #336699 .5pt;border-right:solid #336699 .5pt;" bgcolor=Gold align=center><a href="#" onclick="javascript:newwin=window.open('emlprint.jsp','h','width=300px,height=300px;')" onMouseOver="window.status='Print';return true;" onMouseOut="window.status='';return true;" style="font-size:8pt">Print</a></td>
      
the list to be iterated is set in action class...the page contains above code can show the list correctly...that is, the list is not null before open the new window...
0
 
LVL 6

Expert Comment

by:Holger101497
ID: 17180883
Pleeeeeeaaaase - I can not help you if you don't answer my question!

> What is the URL of the calling page (as displayed in your browser), do you use "<base href='...'>" in your page and what is the URL of the popup?

I've asked this twice already and it's VERY important!!!
Please check the URLs of the two pages from the browser "page information"...

> that is, the list is not null before open the new window...

well, it's not null after the new window opens either - but it is stored in the session and for some reason (probably related to cookies and domains), the popup has a different session and THAT session does (of course) NOT contain a list...

P.S.: never heard of CSS classes? The css code attached to a td looks horrible!
0
 

Author Comment

by:jeff1919
ID: 17180963
The url for calling page is...http://localhost:9080/MasterList/control.do and the url for pop window is not shown in the browser. The code generates the pop up window is <a href="#" onclick="javascript:newwin=window.open('emlprint.jsp','h','width=300px,height=300px;')" But I don't think url information is useful.

PS:  i am not the one writing the css code.
0
 

Author Comment

by:jeff1919
ID: 17181000
the pop up window has different session and that session does not contain the list. if the list is called in that session, we get null exception. it's possible the list is null and cause the null exception. I just tried to eliminate this possiblity..  
0
 
LVL 6

Expert Comment

by:Holger101497
ID: 17181927
I'm a little bit confused by your last post...  (language problems...): Do you mean the popup window is SUPPOSED to have a different session? You mean you want it that way? If so, let me know.

If not, PLEASE post the URL of the popup - you can get it from the window properties in the popup (which browser are you using?), even if there is no address bar.

One more shot in that direction:
You said you can display the list in the main window. Do that. And then change the address in the main window from http://localhost:9080/MasterList/control.do to http://localhost:9080/MasterList/emlprint.jsp

Let me know what happens...
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What monsters are hiding in your child's room? In this article I will share with you a tech horror story that could happen to anyone, along with some tips on how you can prevent it from happening to you.
Here in this article, you will get a step by step guidance on how to restore an Exchange database to a recovery database. Get a brief on Recovery Database and how it can be used to restore Exchange database in this section!
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question