我希望getter方法在多次调用时返回不同的值。类似下面的一个:VisualForce只调用一次getter方法
Iterator<String> itr = new List<String>{'one','two','three','four','five'}.iterator();
public String getValue(){
if(itr.hasNext())
return itr.next();
else
return 'No more values';
}
在visualforce,我用它作为这样的:
<!-- getNumber() called 5 times in a single visualforce page, NOT in a loop -->
{!value}
{!value}
{!value}
{!value}
{!value}
{!value}
,输出是:
one one one one one one
有没有办法把它打印出来如:
one two three four five No more values
似乎visualforce解析器只调用一次getValue()并缓存页面其余部分的值。
使迭代静态或
Visualforce文档明确告诉我们“不要在你的getters或setters中使用副作用!并且不要指望获取者和设置者被调用的数量或顺序。你为什么想要做这种可憎的事? http://www.salesforce.com/us/developer/docs/pages/index_Left.htm#StartTopic=Content/pages_controller_lifecycle_example.htm – eyescream
主要是因为不起作用一个<尖顶:重复...> 我有一个非常有限的页面列表,我希望包括(只有10),但顺序可能会改变。 –
CodeBaker