Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JSP页面中动态读取应用程序映射中的内容。-struts 2.0_Java_Jsp_Struts2_Ognl_Struts Tags - Fatal编程技术网

Java 在JSP页面中动态读取应用程序映射中的内容。-struts 2.0

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

我在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;

    // 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>