Struts2 如何在多个s:select上设置名称参数

Struts2 如何在多个s:select上设置名称参数,struts2,Struts2,假设您有以下场景: 操作中的属性:私有实体 实体有一个列表entity2List Entity2有一个Entity3 Entity3 现在,您需要一个带有multiple=“true”的来填充entity3。这对应于请求的格式为entity.entity2List[n].entity3.id(n=0,1,2…取决于选择的项目数量) 问题:在JSP中,s:select的“name”参数应该是什么来实现这一点? 我尝试了以下操作但未成功(表示entity.entity2List已为空): 我认为

假设您有以下场景:

  • 操作中的属性:
    私有实体
  • 实体有一个
    列表entity2List
  • Entity2有一个
    Entity3 Entity3
现在,您需要一个带有multiple=“true”的
来填充entity3。这对应于请求的格式为
entity.entity2List[n].entity3.id
(n=0,1,2…取决于选择的项目数量)

问题:在JSP中,s:select的“name”参数应该是什么来实现这一点?

我尝试了以下操作但未成功(表示entity.entity2List已为空):


我认为您应该实现自定义struts类型转换器。名称属性应写为entity.entity2List。实现转换器以将值转换为entity2类型对象(该对象又包含entity3)。使用索引属性将值设置为Entity3的id字段
<s:select multiple="true" name="%{entity.entity2List[].entity3.id}" list="#someList" listKey="id" listValue="code"/>
<s:select multiple="true" name="entity.entity2List[].entity3.id" list="#someList" listKey="id" listValue="code"/>