Struts2 如何通过迭代列表来创建表格,使得每一行都有一个单选按钮?

发布于 2024-10-27 19:37:31 字数 907 浏览 1 评论 0原文

我正在尝试创建一个表来使用操作类中的列表上的迭代器来显示一些数据。每行都有列表中每个对象的属性。

<table class="TableA" cellpadding="5px" border="1">
<tr class="even">
    <th></th>
    <th>Col1</th>
    <th>Col2</th>
</tr>
<s:iterator value="objectList" status="obj">
    <tr
        class="<s:if test="#obj.odd == true ">odd</s:if><s:else>even</s:else>">
        <td></td>
        <td><s:property value="objId" /></td>
        <td><s:property value="objValue" /></td>
    </tr>
</s:iterator>

我需要在每行的第一个单元格中有一个单选按钮,以便可以选择一行进行编辑或删除。 我知道这可以使用 来完成。但我需要使用struts2的radio标签。但使用此标签的问题是它为每个无线电标签生成一行(请参阅 此处)。

是否可以 ?如果是的话怎么办?

I am trying to create a table to display some data using iterator over my list from action class. Each row has the properties of each object in the list.

<table class="TableA" cellpadding="5px" border="1">
<tr class="even">
    <th></th>
    <th>Col1</th>
    <th>Col2</th>
</tr>
<s:iterator value="objectList" status="obj">
    <tr
        class="<s:if test="#obj.odd == true ">odd</s:if><s:else>even</s:else>">
        <td></td>
        <td><s:property value="objId" /></td>
        <td><s:property value="objValue" /></td>
    </tr>
</s:iterator>

I need a radio button in first cell of every row so that a row can be selected for edition or deletion.
I know this can be done using <input type="radio" ...>. But I need to use struts2's radio tag. But problem using this tag is that it generates a row for every radio tag (see here).

Is it possible ? If yes then how ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

远山浅 2024-11-03 19:37:31

我认为以下语法更适合您,因为您想使用单选按钮选择每一行

<s:radio theme="simple" name="object_radio" list="#{objId:objId}"/>

这样您也不需要 objId 列
此语法将提交 objId 作为所选单选按钮的值。您可以修改语法以更改单选按钮的显示属性或将其设为空白

I think the following syntax will be better for you as you want to select each row with radio button

<s:radio theme="simple" name="object_radio" list="#{objId:objId}"/>

This way you wont need the objId column too
This syntax will submit objId as the value of selected radio button.You can modify the syntax to change the display property of the radio button or make it blank

呆头 2024-11-03 19:37:31

阿努,你的回答对我帮助很大。
另外这个链接对我有很大帮助:
http://struts .apache.org/2.0.14/docs/how-do-i-render-a-single-radio-button.html

我需要的是一个表格,其中两列是单选按钮,但每一列是一个独立的团体。此外,我不想将键显示为每个单选按钮的标签/值,因为该信息显示在其他列中。我的行是通过哈希图迭代构建的,其中哈希图的键是单选按钮值。

<s:iterator value="myHashMap">
<tr>
  <td><s:radio name="selectedRadioValueFirstColumn"  list="#{key:''}"/></td>
  <td><s:radio  name="selectedRadioValueSecondColumn" list="#{key:''}"/></td>
<%--....... (my other columns) .... --%>
<tr>

因此,我将选项值设置为哈希图的键,并且所选值将存储在字符串属性“selectedRadioValueFirstColumn”和“selectedRadioValueSecondColumn”中。

anu, your answer helped me a lot.
Also this link was of great help for me:
http://struts.apache.org/2.0.14/docs/how-do-i-render-a-single-radio-button.html

What I needed was a table where two of the columns were radio buttons, but each column was an independent group. Furthermore I did not want to show the key as the label/value for each radio button, since that information was displayed in the other columns. My rows were built iterating over a hashmap, where the key of the hashmap was the radio button value.

<s:iterator value="myHashMap">
<tr>
  <td><s:radio name="selectedRadioValueFirstColumn"  list="#{key:''}"/></td>
  <td><s:radio  name="selectedRadioValueSecondColumn" list="#{key:''}"/></td>
<%--....... (my other columns) .... --%>
<tr>

So I am setting the option value as the key of the hashmap, and the selected value will be stored in the string property "selectedRadioValueFirstColumn" and "selectedRadioValueSecondColumn".

不念旧人 2024-11-03 19:37:31

凯拉什:
如果我完全理解你的要求,你的意思是说,当使用 struts2 单选按钮显示页面时,struts2 会自动为每个单选按钮创建一行。

如果是这种情况,那么这是默认的 struts2 功能,struts2 在模板主题上运行,默认主题 (xhtml) 将为每个 struts2 标记自动生成一些 HTML 标记。

如果您希望 struts2 标签不生成任何额外的标记,请使用主题,就像这样简单。可以在每个标签的基础上完成类似这样的操作

<s:radio key="personBean.gender" list="genders" theme="simple" />

,或者您也可以在页面的基础上设置主题。
在根目录中创建 struts2.properties 文件并输入以下条目

struts.ui.theme=simple

我希望这会对您有所帮助

Kaillash:
if i understand your requirements completely all you mean to say that when page getting displayed with struts2 radio button struts2 is automatically creating a row for each radio button.

if this is the case than that is default struts2 functionality,struts2 operates on template theme and the default theme (xhtml) will automatically generate some HTML markup for each struts2 tag.

if you want struts2 tags not to generate any extra markup use the theme as simple.it can be done per tag basis something like this

<s:radio key="personBean.gender" list="genders" theme="simple" />

or you can also set theme on the page basis..
create struts2.properties file in the root and put the following entry

struts.ui.theme=simple

i hope this will help you

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文