2011-12-27 68 views
0

的JSTL打印阵列我有相关的方法的工作弹簧控制器类:Spring Roo的MVC:对象

@RequestMapping(value="shownews", method = RequestMethod.GET) 
     public String getNews(Model model) { 

     // test 
     ArrayList<String> a =new ArrayList<String>(); 
     a.add("aa"); 
     a.add("bb"); 
     model.addAttribute("someA", a); 

     // real data 
     model.addAttribute("newsS", News.getAllNews()); // returns a valid List<News> 

     return "shownews"; 
    } 

然后,我想在我的.jsp页面中显示这些值,代码:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<%@page contentType="text/html;charset=UTF-8" language="java" %> 
<%@page isELIgnored="false" %> 
... 
VALUES: ${someA}  // output: '[aa, bb]' 
VALUES: ${newsS}  // output: '[Category: categ1, Contents: cont1, Dateposted: 2011- 
           12-22 00:00:00.0, Id: 1, IdWho ........]' 

<c:forEach items="${newsS}" var="someitem"> 
<p> Category: ${someitem.category} </p> // output: 'Category: ', instead of 'Category: categ1' 
</c:forEach> 

似乎该数组已正确提交以查看... 答案是:如何列出每个对象的属性? (使用forEach标签) 谢谢!

UPDATE:

我News.java文件只包含域声明(没有getter方法或setter方法)。

一些袋鼠产生的AspectJ文件: News_Roo_Entity.aj:

privileged aspect News_Roo_Entity { 
    .... 
    public static List<News> News.findAllNews() { 
    return entityManager().createQuery("SELECT o FROM News o", News.class).getResultList(); 
    } 
} 

News_Roo_JavaBean.aj:

privileged aspect News_Roo_JavaBean { 
    public String News.getCategory() 
    { 
     return this.category; // it's working 100% 
    } 
    ... other get() methods 
    } 


解决

我禁用袋鼠在我的凸出(成为一个简单的Spring),但没有结果...

的[琐碎]问题是: 我view.jsp的有头:

<%@page contentType="text/html;charset=UTF-8" language="java" %> 
<%@page isELIgnored="false" %> 
<div xmlns:jsp="http://java.sun.com/JSP/Page"  xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0"> 
.... 
</div> 

删除

<div xmlns:jsp= .... > 

,并用一个简单的替代:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO- 8859-1" isELIgnored="false" %> 

大概它只是复制&粘贴从一个.jspx文件和混合的xmlns和taglib ...

感谢您的建议!

+0

显示我们News.getCategory()的代码 – 2011-12-27 22:58:55

+0

我News.java文件只包含域声明(没有得分手或二传手)。 我注意到,我有些袋鼠产生的AspectJ豆类,这里是News_Roo_Entity.aj: 特权方面News_Roo_Entity { .... 公共静态列表 News.findAllNews(){ 回报的EntityManager()的createQuery (“SELECT o FROM News o”,News.class)。getResultList(); } } 而News_Roo_JavaBean.aj: 特权方面News_Roo_JavaBean { 公共字符串News.getCategory(){ 返回this.category; } ...其他get()方法 } – user1118253 2011-12-28 10:05:47

+0

@ user1118253:提示:您可以更新您的问题。阅读来自问题的格式代码然后从评论中读取更容易。 – Ralph 2011-12-28 10:58:28

回答

0

它应该工作得很好你如何尝试:${someitem.category}将打印由方法News.getCategory()返回的对象的toString()的结果。

你desciped行为看起来像getCategory()回报null(或更不可能:在toString()方法返回一个空字符串)