一尘不染

如何使Struts单选标签创建单选按钮的垂直列表

css

我正在使用一个struts单选标记,其中填充了具有两个字段的对象列表:

class MyAction {
     List<MyObject> myList;
     String selectedId
     public String execute() {
         ...
         myList = new ArrayList<MyObject>();
         myList.add(new MyObject("1","first object");
         myList.add(new MyObject("2","second object");
         myList.add(new MyObject("3","second object");
         ...
     }

     // Getters and Setters for myList & selectedId
     ...
}

class MyObject {
    String id;
    String name;

    MyObject(String id, String name) {
         this.id = id;
         this.name = name;
    }
    // Getters and Setters for id & name
    ...
}

这是我在页面上用来显示单选按钮列表的内容

<s:radio key="selectedId" list="myList" listKey="id" listValue="name"/>

但是,这会产生单选按钮的水平列表。我尝试向他们添加CSS样式:

<style>
    .vertical input { display: block; }
</style>

但这会导致标签和单选按钮也显示在单独的行上,而不是单选按钮和标签在同一行上显示:

  • 第一个对象
  • 第二个对象
  • 第三对象

我想要的是:

  • 第一个对象
  • 第二个对象
  • 第三对象

阅读 247

收藏
2020-05-16

共1个答案

一尘不染

它实际上很简单,我的意思是使用主题simple:)

<s:iterator value="myList"> 
  <s:radio theme="simple" name="someNameToSubmit" list="#{id:name}"/><br>
</s:iterator>

这将name作为标签和id要提交的属性

2020-05-16