2012-10-02 45 views
1

.JSP在Spring MVC Web應用程序使用JSTL顯示列表

<c:forEach items = "${allContacts}" var="contact"> 
      <c:out value="${contact.firstName}"/>, 
      <c:out value="${contact.lastName}"/> 
    </c:forEach> 

ContactService.java

public static List listContacts() { 
     return toList(contacts); 

    } 

    private static List toList(Map contacts) { 
     List contactList = new ArrayList(); 
     Iterator iterator = contacts.entrySet().iterator(); 
     while (iterator.hasNext()) { 
      Map.Entry entry = (Map.Entry) iterator.next(); 
      Contact contact = (Contact) entry.getValue(); 
      contactList.add(contact); 
     } 
     return contactList; 
    } 

ListContactsController.java

public class ListContactsController extends AbstractController { 

    public ListContactsController() { 
    } 

    public ModelAndView handleRequestInternal(HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 

     List allContacts = ContactService.listContacts(); 

     return new ModelAndView("ListContacts","allContacts", allContacts); 
    } 
} 

我想列出allContacts,但僅顯示「,」作爲輸出。數據顯示爲GET,但不顯示在網頁中。問題是什麼?

+1

請問您可以將您放入'allContacts'列表的對象的類別發佈。 – Ralph

+0

我的意思是由ContactService.listContacts()返回的列表中的對象! – Ralph

回答

2

你可能不會在你的控制器中加入你的allContacts對象:

session.setAttribute("allContacts", allContactsVariable); 

@拉爾夫的評論:

由於逗號被打印出來,這意味着有是存在於你的列表對象,但對象在其字段中沒有值。

您是否嘗試過在GET之後添加值?例如,contact1.setFirstName("value");contact.setLastName("value")

+0

這不可能是問題,因爲如果collection allContracts是空的或爲null,那麼在輸出中就不會有','! – Ralph

+0

除非需要,否則不應該使用Spring MVC的會話。在Spring MVC中,您應該將對象/變量添加到模型中。 – gigadot

+0

@Ralph我沒有想到這一點。我會更新這個答案。 –

相關問題