【问题标题】:passing variable parameters in action class (Radio element), struts 2在动作类(无线电元素)中传递可变参数,struts 2
【发布时间】:2013-09-26 23:14:43
【问题描述】:

我正在使用struts2 开发一个多项选择测验应用程序。管理员可以决定测试将包含多少问题。所以现在我将接收答案的动作类将不得不接收多个未知参数。

问题使用迭代器打印,选项也使用名为“randomNos”的列表随机化,其中包含随机数。

<%int i=1; %>
<s:iterator var="i" value="quesList">
        <input type="hidden" value="<s:property value="QuesId"/>" name="quesId"/><%=i++ %>) <s:property value="Ques"/>
     <s:iterator var="j" value="randomNos">
      <s:if test="intValue() == 1"><input type="radio" name="ans" value="1"><s:property value="[1].Ans1"/>
    </s:if>

    <s:elseif test="intValue() == 2">input type="radio" name="ans" value="2"><s:property value="[1].Ans2"/>                                                     
    </s:elseif>

    <s:elseif test="intValue() == 3">
     <input type="radio" name="ans" value="3"><s:property value="[1].Ans3"/>
    </s:elseif>

    <s:else>
    <input type="radio" name="ans" value="4"><s:property value="[1].Ans4"/>
    </s:else>

    </s:iterator>
    </s:iterator>

现在接收我试过的参数“Passing variable number of parameters from form in to action in struts 2” 但就我而言,我有单选按钮,所以现在只选择了一个问题的单选,因为所有按钮都具有相同的名称。

在我的行动中,我有

List<String> quesId;
List<String> ans;

我使用迭代器遍历这两个列表。

但问题是所有问题中只有一个选项被选中。如果我使用不同的无线电标签“名称”,我无法将它们放入列表中。

【问题讨论】:

  • 名字要么是单数要么是复数,scriptlets是个不好的代码,没有格式化的样子很难看。
  • 如果您想获取选定元素的列表,为什么要使用单选按钮?
  • @AleksandrM - 我正在开发一个测验系统,它有多项选择题,所以用户必须从 4 个选项中选择 1 个选项,所以为此我使用了单选按钮。现在我想要一个选定单选按钮的列表。
  • @RomanC - 我已经使用 scriptlet 来解决问题,但我找不到使用 struts 标签的方法。顺便说一句,我是 struts2 的新手。
  • @SumitGupta 迭代器标签有一个你不需要的计数器。

标签: java struts2


【解决方案1】:

这有助于“Struts2 form to action fields mapping automatically” 它说实现 ParameterAware 会给我一个包含所有请求参数的 Map。 对代码稍作修改,一切正常。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2014-12-14
    • 2015-04-03
    • 2014-02-12
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多