今天做一个页面,在action中定义了一个属性 为List<Answer> myAnswer
想用<s:iterator var ="a" value="<s:property value="findAnswer(#sId)"/>"><s:iterator>,查询ID,根据函数返回值(字符串),动态生成list(初始化给myAnswer工作在函数中进行),为""或者为"myAnswer"
结果标签无法正常显示,
findAnswer代码
</pre><pre name="code" class="java">public String findAnswer(Integer sid){
System.out.println("findAnswer..."+sid);
myAnswer=answerService.findMyAnswers(sid);
System.out.println("findAnswer..."+sid);
if(ValidateUtil.isValid(myAnswers())){
System.out.println("userId..."+myAnswer.get(0).getUserId()+"userId...");
return "myAnswer";
}
else{
return "";
}
}
最后只能在<s:iterator><s:iterator/>标签之前用<s:property value="findAnswer(#sId)"/>初始化话该list,然后<s:iterator var ="a" value="myAnswer"><s:iterator>写死,请问能否根据函数返回值(要遍历的list属性名),初始化iterator的value属性?这样就能将两行代码写在一起?
另外,在使用<s:property value="findAnswer(#sId)"/>初始化话该list时,发现<s:property value="%{findAnswer(#sId)}"/>也能达到相同效果