Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8123125
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T06:04:23+00:00 2026-06-06T06:04:23+00:00

I have a task to do, I need to take data that has been

  • 0

I have a task to do, I need to take data that has been returned in a response object, and I am sending that to a JSP. What I need to do, is to present this in a menu list that I have created using javascript and jquery – ( which works fine, it just needs the data).

I am using Spring, Here is my Java code – This shows the object:

@Controller
public class WordListController {

    /* @version $Revision: $ $Date: $ */

    @Autowired
    private FrontendServiceFacade FrontendServiceFacade;

    private final Logger logger = Logger.getLogger(this.getClass());

    @RequestMapping("/ViewWords")
    public String WordListRequestController(Model model) {

        WordListRequest request = new WordListRequest();
        WordListResponse response;

        request.setLibraryId("LIB_CODE_1");

        try{
            response = (WordListResponse)FrontendFacade.getWordList(request);           
        }catch(Exception e){
            //TODO Process Exception
            e.printStackTrace();
            return null;
        }

        List<UserBooksType.Book> returnedWordBooks = null;
        List<UserBookPagesType.Page> returnedWordPages = null;
        List<WordsType.Word> returnedWords = null;
        List<WordPageList> WordPageList= new ArrayList<WordPageList>();

        int bookSize = 0;
        int pageSize = 0;
        int wordSize = 0;
        String bookId = "";
        String pageName = "";
        String wordId = "";

        returnedWordBooks = response.getDataLoad().getUserBooks().getBook();
        bookSize = response.getPayLoad().getUserBooks().getBook().size();

        WordPagesList wordPagesList = new WordPagesList();

        ArrayList<BookList> bookList = new ArrayList<BookList>();
        ArrayList<PageList> pageList = new ArrayList<PageList>();
        ArrayList<WordList> wordList = new ArrayList<WordList>();

        // Loop <Book>
        for (UserBooksType.Book book : returnedWordBooks) {
            System.out.println("Book Loop");

            bookId = book.getBookId();

            // *********************************************
            BookList bookL = new BookList();
            bookL.setBookId(bookId);
            // *********************************************

            returnedWordPages = book.getUserBookPages().getPage();
            pageSize = book.getUserBookPages().getPage().size();

            // Loop <Pages>
            for (UserBookPagesType.Page page : returnedWordPages) {

                pageName = page.getName();

                returnedWords = page.getWords().getWord();
                wordSize = page.getWords().getWord().size();

                // Loop <Word>
                for (WordsType.Word word : returnedWords) {
                    System.out.println("Word Loop");

                    wordId = word.getWordId();

                    WordPageList WordPage = new WordPageList();

                    WordPage.setBookId(bookId);
                    WordPage.setPageName(pageName);
                    WordPage.setWordId(wordId);

                    WordPageList.add(WordPage);

                }

            }
        }
        // model.addAttribute("ViewWords", WordPageList); // I dont want to pass
        model.addAttribute("ViewWords", response); // I want to pass this
        return "ViewWords";
    }

}

This shows how the object is build. What I would like to do is pass the “response” object directly to the JSP, and not the “WordPageList” List.

Is there a way I can pass this Object directly, and they cycle through the object on the JSP.

This is my JSP code:

<li ><span class="folder">Books</span>
    <ul>
        <c:forEach items="${ViewBooks}" var="WordPageList" varStatus="status">
            <li class="closed"><span class="folder">${WordPageList.bookId}</span>
                <ul>
                    <li class="closed"><span class="folder">${WordPageList.PageName}<br /></span>
                        <ul>
                            <li class="closed"><span class="folder">${WordPageList.wordId}<br /></span>
                                <ul>
                                    <li><span class="file">Option 1</span></li>
                                    <li><span class="file">Optoin 2</span></li>
                                    <li><span class="file">Option 3</span></li>
                                    <li><span class="file">Option 4</span></li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
        </c:forEach>
    </ul>
</li>

This doesn’t really work for what I want. I want to do something similar, but to pass the “response” object to the JSP and then cycle through this object to present the data, so I think this is using nested foreach statements, but I dont know how to do this, or how to assess these emements.

I hope this makes sense.

Edited:

This is the WordListResponse class as requested:

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "responseStatus",
    "errorNumber",
    "errorDescription",
    "data"
})
@XmlRootElement(name = "WordListResponse")
public class WordListResponse {

    protected int responseStatus;
    protected int errorNumber;
    @XmlElement(required = true)
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    protected String errorDescription;
    @XmlElement(required = true)
    protected WordListResponse.Data data;

    /**
     * Gets the value of the responseStatus property.
     * 
     */
    public int getResponseStatus() {
    return responseStatus;
    }

    /**
     * Sets the value of the responseStatus property.
     * 
     */
    public void setResponseStatus(int value) {
    this.responseStatus = value;
    }

    /**
     * Gets the value of the errorNumber property.
     * 
     */
    public int getErrorNumber() {
    return errorNumber;
    }

    /**
     * Sets the value of the errorNumber property.
     * 
     */
    public void setErrorNumber(int value) {
    this.errorNumber = value;
    }

    /**
     * Gets the value of the errorDescription property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getErrorDescription() {
    return errorDescription;
    }

    /**
     * Sets the value of the errorDescription property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setErrorDescription(String value) {
    this.errorDescription = value;
    }

    /**
     * Gets the value of the data property.
     * 
     * @return
     *     possible object is
     *     {@link WordListResponse.Data }
     *     
     */
    public WordListResponse.Data getData() {
    return data;
    }

    /**
     * Sets the value of the data property.
     * 
     * @param value
     *     allowed object is
     *     {@link WordListResponse.Data }
     *     
     */
    public void setData(WordListResponse.Data value) {
    this.data = value;
    }


    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
    "userBooks"
    })
    public static class Data {

    @XmlElement(required = true)
    protected UserBooksType userBooks;

    /**
     * Gets the value of the userBooks property.
     * 
     * @return
     *     possible object is
     *     {@link UserBooksType }
     *     
     */
    public UserBooksType getUserBooks() {
        return userBooks;
    }

    /**
     * Sets the value of the userBooks property.
     * 
     * @param value
     *     allowed object is
     *     {@link UserBooksType }
     *     
     */
    public void setUserBooks(UserBooksType value) {
        this.userBooks = value;
    }

    }

}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-06T06:04:24+00:00Added an answer on June 6, 2026 at 6:04 am

    A nested forEach works exactly as a non-nested forEach:

    <%-- iterate over the someList field of the someObject attribute --%>
    <c:forEach var="outerItem" items="${someObject.someList}">
        <%-- now, outerItem is an attribute, and you may access its fields --%>
    
        <%-- iterate over the otherList field of the outerItem attribute --%>
        <c:forEach var="innerItem" items="${outerItem.otherList}">
    
            <%-- now, innerItem is an attribute, and you may access its fields --%>
    
        </c:forEach>
    
    </c:forEach>
    

    The above supposes that the Spring controller stores an object with the following structure in the someObject attribute:

     class Xxx {
         public List<Yyy> getSomeList() {
             ...
         } 
     }
    
     class Yyy {
         public List<Zzz> getOtherList() {
             ...
         } 
     }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a task I need to perform, do_stuff(opts) , that will take ~1s
I have a web application that has a requirement to take data from an
I have been given a task to create a Python file that will take
I have a calculation task that will take some time to complete. Minutes. Maybe
I have a rake task I need to run as a daily job on
I have a task where I need to translate a DataTable to a two-dimensional
I have a task where i need to write a multidimensional array to HDFS.
I have a jQuery function already to perform the task I need but is
I have submitted a task using executors and I need it to stop after
i have task which takes a parameter and has three modes of results Example

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.