0

フォームがあり、数字を 1 つずつ入力したい。

オブジェクトを作成し、それに getParameter() 値を渡します。

   <form action="index.jsp" name="form" method="GET">
    <input type="text" value="" name="input" />
    <input type="hidden" name="hiddenCounter"  value="" />  
    <%
    String input = request.getParameter("input");
    String hiddenCounter = request.getParameter("hiddenCounter");               
    control.MainProgram main = new control.MainProgram(input, hiddenCounter);
    %>           

    <input type="submit" value="Submit Numbers" />
    <% out.println(main.getResult()); %>
    </form>  

Java クラスのコンストラクターは、値を int に解析し、変数を設定します。

public MainProgram(String input, String hiddenCounter) {    

    try {         
       number = Integer.parseInt(input);           
       counter = Integer.parseInt(hiddenCounter);           
    } catch (NumberFormatException e) {
    }        
}


public int getResult() {
    return number;
}

数値が送信されるたびに数値を合計するにはどうすればよいですか?

問題は、コンストラクターが呼び出されるたびに、変数が送信された数値に設定されることです。

何かのようなもの

number+=number; 

作業を行わない (変数をリセットする原因となる)

検索して検索しました 誰か助けてくれませんか?

4

2 に答える 2

0

合計の現在の合計をセッション変数に渡す必要があります。これを行うには、次のようにセッション HttpSession session = request.getSession(); session.setAttribute("UserName", username); を取得します。その後、getAttribute() 関数を使用して属性を取得できます。これは、同時ユーザーに対して機能するはずです。さらにサポートが必要な場合

于 2014-10-10T16:29:22.503 に答える
0

マルチスレッド アクセスを気にしない場合は、単純に を宣言できますnumber static

変数は、インスタンスではなくcontrol.MainProgram クラスにバインドされます。

あなたはそれから...

try {         
       number += Integer.parseInt(input); 

...そして同様に宣言getResult staticします...

...それからそれを呼び出す<% out.println(control.MainProgram.getResult()); %>

タイトルが示すように、これは平均ではなく、合計であることに注意してください。

static int getResultしかし、メソッドの本体に平均を実装するのは簡単です。

于 2014-10-10T16:25:38.713 に答える