如何在下一次重载jsp的时候设置一个参数进去?

问题描述 投票:1回答:1

我有一个JSP文件,里面有10个按钮,点击这10个按钮中的任何一个,都应该给自己设置一个参数,然后重新加载,这样重新加载的页面就会读取这个参数,然后决定哪个数组位置需要传递给java函数。

所以比如说,点击button0应该将 "选举 "参数设置为0,button1设置为1,等等,这样的url看起来就像是 somesite/somepage.jsp?election=0, somesite/somepage.jsp?election=1等。

我试着这样做,把每个按钮都声明在一个表单里面,像这样。

<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 + ".";
        }
    }
%>

有什么办法吗?有什么办法吗?

javascript html jsp url-parameters
1个回答
1
投票

Swati 在上面的评论中说,我之前的代码的问题是没有把一个隐藏的 <input> 里面 <form> 的修改。<script> 每当按钮被按下,每当页面被重新加载时,都会用url中的参数分配,即。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 {
            ...
        }
    }
%>
© www.soinside.com 2019 - 2024. All rights reserved.