0

我创建了以下 JSP。这个 jsp 创建了两个按钮。

<form:form method="POST"  action="${pageContext.request.contextPath}/link">    
     <div class="button-container" style="float:left;clear:right">
        <table>

            <tr>
               <td>
                  <input id="post" type="image" src="${pageContext.request.contextPath}/<spring:theme code="image"/>votup.png" 
                </td>
            </tr>

            <tr class="hidden">    
                <td class="hidden">           
                  <input type="text" name="mark" value="up"/> 
                </td>
            </tr>

     <tr>
                <td>
                   <input id="post" type="image" src="${pageContext.request.contextPath}/<spring:theme code="image"/>votdown.png" 
                </td>
             </tr>

             <tr class="hidden">
                <td class="hidden">
                    <input type="text" name="mark" value="down"/>
                </td>
             </tr>

在控制器类中

 @RequestMapping(value = "/link", method = RequestMethod.POST)
 public String sendMark(@RequestParam("mark") final String marking){


 }

我注意到字符串标记的值 = up,down。无论我单击 2 个按钮中的哪一个,都会发生这种情况。而不是这个,我只想根据用户将单击的按钮向上或向下。(如果单击第一个按钮应该向上,如果单击第二个按钮应该向下)。我明白我之所以得到这个结果是因为我将两个隐藏值都命名为标记,但我不知道如何用另一种方式进行分离。实际上是我第一次使用 JSP。我可以使用一些标签库来解决这个问题吗?非常感谢任何评论或答案!谢谢

4

3 回答 3

0

我建议您只放置一个隐藏字段并在处理 POST 命令之前使用 javascript 更改其值。

于 2012-05-30T06:52:26.470 回答
0

我建议您为两个按钮创建两个单独的表单,并且两个表单都将包含隐藏字段。现在你只会得到一个值。

但是,如果您使用不同的操作创建两个单独的表单,那么您将不需要隐藏字段。

希望这对您有所帮助。

干杯。

于 2012-05-30T07:01:26.360 回答
0

据我了解,您将提交表格以进行投票或否决。并且您希望每个动作有 2 个按钮以相同的形式,但不知道如何有所作为。我会做这样的事情:

在表单上,​​根据您的请求映射放置操作(似乎已经完成)。然后,两个按钮都会提交表单。首先,您的两个按钮都具有相同的 id,并且每个元素的 id 必须是唯一的。所以,给你的箭头和表格id就像:

<input id="postup" type="image" 
<input id="postdown" type="image"
<form id="myform"

然后,对它执行一个 onclick 操作,例如:并创建 2 个 JS 函数:

function postUp () {
   $('#mark').val("up");
   $('#myform').submit();
}
function postDown () {
   $('#mark').val("down");
   $('#myform').submit();
}

您的控制器将如下所示:

@RequestMapping(value = "/link", method = RequestMethod.POST)
public String sendMark(Model model, HttpServletRequest request){

String mark = request.getParameter("mark");
return "yourjsp"
}

你就会有你的价值。希望能帮助到你 !问候 !

于 2012-12-21T15:25:03.893 回答