我无法弄清楚为什么我无法从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))));
}
答案 0 :(得分:0)
它真的很奇怪......但有些想法或测试
AddPollUrl是一个带有命名操作的操作URL,因此您的操作是在您的通用portlet中执行的吗?
您确定文本字段是否填充了UI中的值(标记中没有明确的值)? ParamUtil输出相同,没有带空值的值
尝试不使用type = text并将其写为单行(输入标记)
尝试aui:提交而不是aui:按钮类型提交
尝试在表单或字段中添加id(如果他们没有命名空间,我已经看过重复表单的一些问题)
为什么要使用新字符串(ParamUtil ...)?
最重要的......你的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参数的标准方法。