Java 在JSP页面中动态读取应用程序映射中的内容。-struts 2.0
我在struts 2.0操作类中使用ApplicationWare。因此,我在应用程序映射中放置了一个条目作为Java 在JSP页面中动态读取应用程序映射中的内容。-struts 2.0,java,jsp,struts2,ognl,struts-tags,Java,Jsp,Struts2,Ognl,Struts Tags,我在struts 2.0操作类中使用ApplicationWare。因此,我在应用程序映射中放置了一个条目作为 application.put("animalDTO", animalDTO); 动物: public class AnimalDTO { private String name_N1; private String name_N2; private String name_N3; private String name_N4; // ge
application.put("animalDTO", animalDTO);
动物:
public class AnimalDTO {
private String name_N1;
private String name_N2;
private String name_N3;
private String name_N4;
// getters and setters
}
现在,在进入我的jsp页面之前,我将填充每个变量中的值
在JSP页面中:我使用迭代器得到N1,N2到N4。
现在我需要创建s:textfield并动态填充这些变量内容
即
但是,文本框会得到如下值:
application.animalDTO.name_1
application.animalDTO.name_2
application.animalDTO.name_3
application.animalDTO.name_4
需要的是与这些变量对应的值
你知道如何将这个字符串转换为一个对象/键,以便将lookup转换为valuestack吗。最终我找到了解决方案。我尝试了很多尝试和错误的方法。终于找到了答案。我们可以通过执行以下操作动态读取属性值:
<s:iterator value="application.nameList" var="nameList">
<s:textfield theme="simple" value="%{application.animalDTO['name_' + #nameList]}" />
</s:iterator>
我尝试了%{application.animalDTO['name_u'+#nameList]},结果成功了。:-) 我终于找到了解决办法。我尝试了很多尝试和错误的方法。终于找到了答案。我们可以通过执行以下操作动态读取属性值:
<s:iterator value="application.nameList" var="nameList">
<s:textfield theme="simple" value="%{application.animalDTO['name_' + #nameList]}" />
</s:iterator>
我尝试了%{application.animalDTO['name_u'+#nameList]},结果成功了。:-) 您是否尝试过应用程序名称列表?另外,
id
已被var属性替换。我修改为s:iterator value=“application.nameList”id=“nameListID”var=“nameListVar”,s:textfield的值为value=“%{application.animalDTO.name_35;nameListVar}”但是仍然不显示值和var
属性是不必要的。为什么您仍然在文本中使用application
,因为迭代器会将对象推到值堆栈的顶部,在您的情况下,对象将是animalDTO
,您可以通过引用其中的名称来引用属性,此外,类名应以大写字母开头。您是否尝试过#application.nameList
?另外,id
已被var属性替换。我修改为s:iterator value=“application.nameList”id=“nameListID”var=“nameListVar”,s:textfield的值为value=“%{application.animalDTO.name_35;nameListVar}”但是仍然不显示值和var
属性是不必要的。为什么您仍然在文本中使用application
,因为迭代器会将对象推到值堆栈的顶部,在您的情况下,对象将是animalDTO
,您可以通过引用其中的名称来引用属性,类名也应该以大写字母开头
<s:iterator value="application.nameList" var="nameList">
<s:textfield theme="simple" value="%{application.animalDTO['name_' + #nameList]}" />
</s:iterator>