liferay portlet无法获取输入字段值

时间:2012-09-27 09:38:05

标签: java input liferay portlet

我无法弄清楚为什么我无法从jsp获取输入值。我正在使用循环为“选择”制作几个输入fiels,但是当我试图从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))));
        }

3 个答案:

答案 0 :(得分:0)

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

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

  2. 您确定文本字段是否填充了UI中的值(标记中没有明确的值)? ParamUtil输出相同,没有带空值的值

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

  4. 尝试aui:提交而不是aui:按钮类型提交

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

  6. 为什么要使用新字符串(ParamUtil ...)?

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

答案 1 :(得分: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方法中进行选择。

问候!

答案 2 :(得分:-1)

尝试使用:

actionRequest.getParameter("choice" + i);

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