我是JSP和Servlet开发的新手,我必须做以下事情:
我有一个包含JQuery按钮元素的JSP页面。
<th width = "8.33%">
<form action="salwf.do" method="post">
<button name="status" value="Accept" class="acceptButton">ACCEPT BUTTON</button>
<button name="status" value="Cancel" class="cancelButton">CANCEL BUTTON</button>
<button name="status" value="SAP" class="sapButton">SAP ICON BUTTON</button>
</form>
</th>
如您所见,我将此按钮元素放入表单中。每个按钮都有一个名为status
的属性,用于所有按钮和每个按钮的特定值(第一个按钮为Accept
,第二个按钮为Cancel
,第三个按钮为Sap
按钮)。
好的,现在我想将此表单提交给处理包含表单的页面的Servlet。此页面包含以下URL:
http://localhost:7001/edi-mon/salwf.do
这是web.xml
文件中的servlet配置(Servlet定义和Servlet URL映射):
<servlet>
<servlet-name>salwf</servlet-name>
<servlet-class>it.sistinf.ediweb.monitor.servlets.Salwf</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>salwf</servlet-name>
<url-pattern>/salwf.do</url-pattern>
</servlet-mapping>
然后我有Salwf
类来实现HttpServlet
接口并处理这个JSP页面。
所以这个Servlet也要处理上一个表单的帖子,为此我已经在这个类中实现了doPost()
方法,这样:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String status = request.getParameter("status");
}
所以我跳过检索JQuery点击按钮的status
名称的值,但它没有用。
调试应用程序时,我尝试单击按钮,但我从未进入doPost()
方法,因此我无法检索状态请求参数的值。
为什么呢?我错过了什么?我该如何解决这个问题?
答案 0 :(得分:0)
这应该有效,不涉及jQuery。有点匆忙,所以在代码上不能太精致。
<th width = "8.33%">
<form action="salwf.do" method="post" name='theForm'>
<button value="Accept" class="acceptButton" onclick='setVal("accept")'>ACCEPT BUTTON</button>
<button value="Cancel" class="cancelButton" onclick='setVal("cancel")'>CANCEL BUTTON</button>
<button value="SAP" class="sapButton" onclick='setVal("sap")'>SAP ICON BUTTON</button>
<input type='hidden' name='status'>
</form>
</th>
<script>
function setVal(buttonCmd) {
document.forms['theForm'].status.value = buttonCmd;
document.forms['theForm'].submit();
return false;
}
</script>
它是如何工作的:它在每个按钮的点击事件上绑定一个js函数,当按下按钮时,隐藏输入的值命名为&#34; status&#34;根据按钮本身设置一个值,并提交表单。
可能有更优雅和更清晰的方式,但这是我脑海中最容易实现的,而不会进入HTML结构的深层次。