Velocity不能读取Action中List

等待时候 2014-12-23 05:23:57


//Action
private List<Task> dTaskAllLists = new ArrayList<Task>();
private String str;
private Task task;
//以上都有set & get方法


public String task(){

dTaskAllLists = taskingService.getTaskList(1);//控制台能打印,有5条数据
str = "Hello World";
task = (Task) dTaskAllLists.get(0);
return "task";
}



<!--VM 页面-->
${str} <!-----能正常打印输出-->
${task.task_create_time} <!----也能正常打印--->
${dTaskAllLists.size()} <!---没有显示,一片空白--->

#foreach($taskList in $dTaskAllLists )
$!{taskList.task_create_time}<!--不能循环遍历,里面没有数据-->
#end
...全文
308 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
等待时候 2014-12-25
  • 打赏
  • 举报
回复
引用 12 楼 u012345283 的回复:
试试、$!{dTaskAllLists} 我一般都加!
感谢
等待时候 2014-12-25
  • 打赏
  • 举报
回复
引用 18 楼 shixitong 的回复:
[quote=引用 10 楼 janda2011 的回复:] 试过了。没有用
不知道楼主问题解决了,我后来测试了下还是你名字起的有问题 dTaskAllLists 如果我名字改为dtaskAllLists就可以了 不改的话,如果调用工具的自动get和set是下面的这样
	public List<Task> getdTaskAllLists() {
		return dTaskAllLists;
	}

	public void setdTaskAllLists(List<Task> dTaskAllLists) {
		this.dTaskAllLists = dTaskAllLists;
	}
这样struts是映射不到的(get和set后面第一个字母小写了) [/quote]感谢,我也找到问题所在了,dTaskAllLists自动生成set&get 的话,(get和set后面第一个字母小写了)还是小写!便没有变成大写! 这让我以后怎么相信这工具自动生成啊!
shixitong 2014-12-25
  • 打赏
  • 举报
回复
引用 10 楼 janda2011 的回复:
试过了。没有用
不知道楼主问题解决了,我后来测试了下还是你名字起的有问题 dTaskAllLists 如果我名字改为dtaskAllLists就可以了 不改的话,如果调用工具的自动get和set是下面的这样
	public List<Task> getdTaskAllLists() {
		return dTaskAllLists;
	}

	public void setdTaskAllLists(List<Task> dTaskAllLists) {
		this.dTaskAllLists = dTaskAllLists;
	}
这样struts是映射不到的(get和set后面第一个字母小写了)
等待时候 2014-12-24
  • 打赏
  • 举报
回复
引用 14 楼 u014654823 的回复:
这种动态语言不熟悉。 我能提点意见吗。 首先.size()应该换成应该是去掉用他的getSize()方法。 故获取不到。
这是Velocity模板的语法
flurriedCat 2014-12-24
  • 打赏
  • 举报
回复
然后再去试试9楼的方法。 确定不是前面取size时有问题导致后面无法显示。 完毕。
flurriedCat 2014-12-24
  • 打赏
  • 举报
回复
这种动态语言不熟悉。 我能提点意见吗。 首先.size()应该换成应该是去掉用他的getSize()方法。 故获取不到。
等待时候 2014-12-24
  • 打赏
  • 举报
回复
引用 12 楼 u012345283 的回复:
试试、$!{dTaskAllLists} 我一般都加!
试过了,没用
百里马 2014-12-24
  • 打赏
  • 举报
回复
试试、$!{dTaskAllLists} 我一般都加!
等待时候 2014-12-23
  • 打赏
  • 举报
回复
要是我直接$dTaskAllLists ,就这样页面都不能直接打印
等待时候 2014-12-23
  • 打赏
  • 举报
回复
试过了。没有用
shixitong 2014-12-23
  • 打赏
  • 举报
回复
<!--VM 页面-->
${str} <!-----能正常打印输出-->
${task.task_create_time}  <!----也能正常打印--->

#foreach($taskList in $!{dTaskAllLists} )
          $!{taskList.task_create_time}<!--不能循环遍历,里面没有数据-->
#end
#foreach($taskList in $dTaskAllLists ) 改为 #foreach($taskList in $!{dTaskAllLists} )
等待时候 2014-12-23
  • 打赏
  • 举报
回复
引用 7 楼 shixitong 的回复:
那你循环你string数组的时候输出list.size()还有值,还有把你的sting换为你的bean再试试
private List<Task> dTaskAllLists = new ArrayList<Task>(); //获取bean前台获取不到 private List<String> dTaskAllLists = new ArrayList<String>();//前台能够获取
shixitong 2014-12-23
  • 打赏
  • 举报
回复
那你循环你string数组的时候输出list.size()还有值,还有把你的sting换为你的bean再试试
等待时候 2014-12-23
  • 打赏
  • 举报
回复
引用 5 楼 shixitong 的回复:
应该不是,在velocity应该没有直接点size()这样的语法吧,你可以去查查
是可以的,获取到List的大小!我输出点size()的目的是测试List有没有值! 但是dTaskAllLists 却始终没有值!不知道怎么回事,我怀疑是JavaBean的问题,但又找不出是哪里的问题!
shixitong 2014-12-23
  • 打赏
  • 举报
回复
应该不是,在velocity应该没有直接点size()这样的语法吧,你可以去查查
等待时候 2014-12-23
  • 打赏
  • 举报
回复
引用 3 楼 shixitong 的回复:
随便在后台定义一个list,然后放点值进去,还有把取长度那条语句删了,然后再前台循环看看呢
我定义了一个String类型的List,在前台能够获取的到,这是怎么一回事呢?难道是我的JavaBean有问题?
shixitong 2014-12-23
  • 打赏
  • 举报
回复
随便在后台定义一个list,然后放点值进去,还有把取长度那条语句删了,然后再前台循环看看呢
等待时候 2014-12-23
  • 打赏
  • 举报
回复
引用 1 楼 shixitong 的回复:
奇怪,换个名字试试
我之前也是以为名字问题,但是我换了很多!证明不关这事
shixitong 2014-12-23
  • 打赏
  • 举报
回复
奇怪,换个名字试试

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧