Bạn có một biểu mẫu và nhiều nút gửi. Vấn đề là một biểu mẫu chỉ có thể gửi cho một hành động, bất kể có bao nhiêu nút gửi bạn có trong biểu mẫu.
Ba giải pháp đến tâm ngay bây giờ:
1. Có chỉ là một hành động mà bạn gửi tất cả mọi thứ. Khi đã ở trong lớp Hành động, hãy kiểm tra nút nào đã được sử dụng để gửi biểu mẫu và thực hiện điều trị thích hợp dựa trên điều đó.
<html:form action="modify">
..
..
<html:submit value="delete"/>
<html:submit value="edit" />
<html:sumit value="update" >
</html:form>
Trong phương pháp ModifyAction.execute(...)
có cái gì đó như:
if (request.getParameter("delete") != null || request.getParameter("delete.x") != null) {
//... delete stuff
} else if (request.getParameter("edit") != null || request.getParameter("edit.x") != null) {
//...edit stuff
} else if (request.getParameter("update") != null || request.getParameter("update.x") != null) {
//... update stuff
}
2. Có thuộc tính action của form HTML thay đổi sử dụng JavaScript trước khi nộp mẫu đơn. Trước tiên, bạn thay đổi nộp nút cho những người đơn giản với bộ xử lý nhấp chuột kèm theo:
Với bộ xử lý:
function submitTheForm(theNewAction) {
var theForm = ... // get your form here, normally: document.forms[0]
theForm.action = theNewAction;
theForm.submit();
}
3. Dùng (lớp một hành động tương tự để chỉ 1) DispatchAction
nhưng không cần phải kiểm tra xem nút nào đã được nhấp vì được xử lý bởi DispatchAction
.
Bạn chỉ cần cung cấp ba phương thức thực thi đúng tên là delete
, edit
và update
. Here is an example that explains how you might do it.
Kết luận: Đối với số 1, tôi không thực sự thích những thử nghiệm xấu xí này .... cho số 2, tôi thực sự không thích thực tế là bạn phải chơi với biểu mẫu hành động sử dụng JavaScript, vì vậy tôi sẽ cá nhân để tìm số 3.
Nguồn
2011-09-12 19:47:31
Cảm ơn bạn rất nhiều .... Hãy để tôi thử ... – Nageswaran
hướng dẫn thực sự tốt đẹp được đưa ra bởi bạn - +1 – Naved
Wow. Chính xác những gì tôi cần. Cảm ơn nhiều! – ykombinator