在.jsp文件中,我迭代userList和标题列表。标记的id属性包含列表中存在的数据的实例。此id在java scriptlet中用于实现应用程序逻辑。
<logic:iterate id="a" name="ExcelForm" property="userList">
<tr>
<logic:iterate id="b" name="ExcelForm" property="header">
<td>
String a = (data.get(header) instanceof String)? ((String) data.get(header)) : (((String[])data.get(header)).length > 1000 ? ((String[])data.get(header))[1000] : "");
....
%>
</td>
</tr>
</logic:iterate>
有必要将其转换为Struts2,但我不知道如何在scriptlet中使用OGNL变量。
<s:iterator var="a" value="%{userList}">
<tr>
<s:iterator var="b" value="%{header}">
<td>
String a = (data.get(header) instanceof String)? ((String) data.get(header)) : (((String[])data.get(header)).length > 1000 ? ((String[])data.get(header))[1000] : "");
....
%>
</td>
</s:iterator>
</tr>
</s:iterator>
答案 0 :(得分:1)
您可以使用s:set
tag在指定范围内创建变量(默认情况下为操作范围),并为OGNL表达式评估结果赋值。
<s:set var="a" value='%{(data.get(header) instanceof String)? ((String) data.get(header)) : (((String[])data.get(header)).length > 1000 ? ((String[])data.get(header))[1000] : "")}'/>