Как я могу установить параметр при следующей перезагрузке jsp? - PullRequest
1 голос
/ 01 мая 2020

У меня есть JSP файл с 10 кнопками, нажатие на любую из десяти должно установить параметр в себя и перезагрузить, чтобы страница перезагрузки прочитала этот параметр и затем решила, какое расположение массива необходимо передать java функция.

Так, например, нажатие на кнопку0 должно установить параметр «выборы» в 0, кнопки в 1, и т. д. c. Чтобы URL выглядел как somesite/somepage.jsp?election=0, somesite/somepage.jsp?election=1, et c.

Я пытаюсь сделать так, объявив каждую кнопку внутри формы примерно так:

<form name="form1" action="SomePage.jsp" method="post">

    <button class="btn" type="submit" onclick="btns(0)">
        See product 0
    </button>

    <button class="btn" type="submit" onclick="btns(1)">
        See product 1
    </button>

    etc...

</form>

и используя следующий метод каждый раз, когда нажимается любая из десяти кнопок:

<script language="JavaScript">
    function btns(num){
        document.form1.btnElection.value = num;
        form1.submit();
    } 
</script>

, но каждый раз, когда я получаю btnElection, возвращается null вместо {0 .. 9}

Способ, которым я получаю и проверьте параметр следующим образом:

<%  if (request.getParameter("btnElection") == null) {
        setElection("0");
        session.setAttribute("eleccion", "0");
        requestData("0");
    } else {
        String e = request.getParameter("btnElection");
        if(e != null){
               session.setAttribute("eleccion", e);
               setElection(e);
               requestData(e);
        } else {
            error = "Error: btnElection = " + e + ".";
        }
    }
%>

Есть идеи? Спасибо

1 Ответ

1 голос
/ 01 мая 2020

Как сказал Swati в комментарии выше, проблема с моим предыдущим кодом не заключалась в том, чтобы скрыть <input> внутри <form>, который изменяется <script> при каждом нажатии кнопки. , присваивается каждый раз, когда страница перезагружается с параметром в URL ie: somesite/somepage.jsp?election=0 и читается самим jsp.

Это будет означать объявление каждой кнопки внутри формы следующим образом:

<form name="form1" action="SomePage.jsp">

    <button class="btn" type="submit" onclick="btns(0)">
        See product 0
    </button>

    <button class="btn" type="submit" onclick="btns(1)">
        See product 1
    </button>

    etc...

</form>

Использование следующего метода при каждом нажатии любой из десяти кнопок путем вызова btns(), назначенного в аргументах каждой кнопки onClick:

<script language="JavaScript">
    function btns(num){
        document.form1.btnElection.value = num;
        form1.submit();
    } 
</script>

И чтения параметра в этот частный случай, вот так:

<%  if (request.getParameter("btnElection") == null) {
        session.setAttribute("eleccion", "0");
    } else {
        String e = request.getParameter("btnElection");
        if(e != null){
               session.setAttribute("eleccion", e);
        } else {
            ...
        }
    }
%>
...