Struts2将列表数据从JSP发送到Action类:替代方式

我正在向同事解释如何使用索引从JSP页面获取列表数据以返回到操作类,如此处和此处所述 。 他不太理解并且自己摸索了一下,直到突然他没有使用指数让它成功!

在他的JSP页面中,他有:

    

在他的动作课上,他有“适当的”制定者:

 public List getContactNameList() public void setContactNameList(List list) 

我很困惑为什么这项工作。 我认为这是有效的,因为他发送非bean数据(在这种情况下是字符串),并且有一个智能构建到Struts2 / OGNL中,以便将值附加到列表而不是覆盖它们。

任何人都可以详细解释这个“无指数”案件背后的问题吗? 如何使用上面的代码段实例化和填充字符串列表?

您应该了解bean数据而不是bean数据作为参数传递给操作。 如果您实现ParameterAware ,参数具有可以找到的结构。

请注意,将返回给定名称的所有参数值,因此映射中对象的类型为java.lang.String[]

然后XWork Type Conversion尽最大努力将此映射转换为beans属性。 请参阅内置类型转换支持 。

框架中的例程类型转换是透明的。 通常,您需要做的就是确保HTML输入具有可在OGNL表达式中使用的名称。 (HTML输入是表单元素和其他GET / POST参数。)

在no索引中,case参数映射在一个键下,而不是索引名称在它们自己的名称下使用。

您必须在上面的代码中设置索引值

喜欢