0

我无法弄清楚为什么我无法从 jsp 获取输入值。我正在使用 for cycle 为“选择”创建几个输入字段,但是当我尝试从 mvcportlet 获取值时,它什么也得不到。

<aui:form action="<%=addPollURL%>">
    <aui:fieldset>
        <%
            int optionCount = Integer.parseInt(optionCountS);
            for (int i = 0; i < optionCount; i++) {
        %>
        <aui:input label="<%=Integer.toString(i + 1)%>" name="choice<%=i%>"
            type="text" />
        <%
            }
        %>
        <aui:button-row>
            <aui:button value="Add poll" type="submit" />
        </aui:button-row>
    </aui:fieldset>
</aui:form>

这里是 mvcportlet 方法

List<String> choices = new ArrayList<String>();
        int count = Integer.parseInt(actualChoiceCount);
        for (int i = 0; i < count; i++) {
            System.err
                    .println("another choice"
                            + ParamUtil
                                    .getString(
                                            actionRequest,
                                            ("choice" + i)));
            choices.add(new String(ParamUtil.getString(actionRequest,
                    ("choice" + i))));
        }
4

3 回答 3

0

它真的很奇怪......但是一些想法或测试

  1. AddPollUrl 是具有命名操作的操作 URL,因此您的操作是在通用 portlet 中执行的吗?

  2. 您确定文本字段中填充了 UI 中的值(标签中没有明确的值)吗?没有值的 ParamUtil 输出与具有空白值的输出相同

  3. 尝试不使用 type=text 并将其写为单行(输入标签)

  4. 尝试 aui:submit 而不是 aui:button 类型提交

  5. 尝试向表单或字段添加 id(如果没有命名空间,我已经看到重复表单的一些问题)

  6. 为什么是新字符串(ParamUtil ...)?

最重要的...你的 System.outs 的输出是什么?

于 2012-09-28T20:02:19.200 回答
0

发生这种情况是因为您的输入字段没有值。或者至少看起来是这样。您应该修改输入以将 value 参数设置为“choiceX”,例如:

<aui:input label="<%=Integer.toString(i + 1)%>" name="choice<%=i%>"
        type="text" value="choice<%=i%>" />

然后你会在 actionRequest 中找到它,就像 Jonny 说的:

request.getParameter("choice"+i); 

这将返回输入字段的,按其名称搜索。因此,您可以在 processAction 方法中进行选择。

问候 !

于 2012-11-21T08:47:59.947 回答
-1

尝试使用:

actionRequest.getParameter("choice" + i);

这不是从请求中获取 POST 参数的标准方式。

于 2012-09-28T06:53:40.760 回答