检查表单上的哪个按钮引起了操作

时间:2013-07-25 14:43:49

标签: java jsp

我的页面上有这样的表格

<form action="ToolbarAction.do" method="POST">
    <div id="toolbar"
        class="ui-widget-header ui-corner-all ui-widget-content">
        <input style="font-family: times new roman;" type="button" id="item0"
            value="<fmt:message key='main'/>" /> <input
            style="font-family: times new roman;" type="button" id="item1"
            value="<fmt:message key='prices'/>" />
        <c:choose>
            <c:when test="${enterAttr == false || enterAttr == null }">
                <input style="font-family: times new roman;" type="submit"
                    id="item2" value="<fmt:message key='book'/>" />
            </c:when>
            <c:when test="${enterAttr == true }">
                <input style="font-family: times new roman;" type="submit"
                    id="item2" value="<fmt:message key='check'/>" />
            </c:when>
        </c:choose>
        <input style="font-family: times new roman;" type="submit" id="item3"
            value="<fmt:message key='contacts'/>" /> <input
            style="font-family: times new roman;" type="submit" id="item4"
            value="<fmt:message key='service'/>" />
    </div>
</form>

如何检查按下了什么按钮并导致了ToolbarAction?这是ToolbarAction类中的exec方法。我应该从HttpServletRequest获取一些参数?

public String exec(HttpServletRequest req, HttpServletResponse resp) {
    // TODO Auto-generated method stub
    return null;
}

1 个答案:

答案 0 :(得分:1)

解决方案是为所有name元素提供相同的<input>属性。

<input name="submit" style="font-family: times new roman;" type="submit"
                id="item2" value="<fmt:message key='check'/>" />

由于用户只能为每个请求按下一个提交按钮,因此您将拥有一个名为submit的请求参数。您可以像

一样检索它
String value = request.getParameter("submit");

其中requestHttpServletRequest对象。 getParameter的返回值是value元素的<input>属性。你可以做一堆检查,看看哪个被按下了。