0

jsp から入力値を取得できない理由がわかりません。「選択」用の複数の入力フィールドを作成するためにサイクルを使用していますが、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

これは、入力フィールドに値がないために発生します。または、少なくともそう思われます。次のように、値パラメーターを「choiceX」に設定するように入力を変更する必要があります。

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

次に、Jonnyが言ったように、actionRequestにあります。

request.getParameter("choice"+i); 

これにより、入力フィールドの値が返され、その名前で検索されます。したがって、processActionメソッドを選択できます。

よろしく!

于 2012-11-21T08:47:59.947 に答える
0

それは本当に奇妙です...しかし、いくつかのアイデアやテスト

  1. AddPollUrl は名前付きのアクションを持つアクション URL であり、アクションは汎用ポートレットで実行されますか?

  2. UI でテキスト フィールドに値が入力されていますか (タグに明示的な値はありません)。ParamUtil の出力は、値がない場合と値が空白の場合と同じになります。

  3. type=text なしで試して、一行で書いてみてください(入力タグ)

  4. aui:button type submit の代わりに aui:submit を試す

  5. フォームまたはフィールドに ID を追加してみてください (フォームに名前空間がない場合、繰り返されるフォームで問題が発生することがあります)。

  6. なぜ new String(ParamUtil...) なのですか?

最も重要なことは... System.outs の出力は何ですか?

于 2012-09-28T20:02:19.200 に答える
-1

使用してみてください:

actionRequest.getParameter("choice" + i);

これは、リクエストから POST パラメータを取得する標準的な方法ではありません。

于 2012-09-28T06:53:40.760 に答える