Кнопка отмены без каких-либо вызовов метода действия и исключенийJAVA

Программисты JAVA общаются здесь
Anonymous
Кнопка отмены без каких-либо вызовов метода действия и исключений

Сообщение Anonymous »

У меня возникла проблема с кодом Struts (1.x), который я сейчас просматриваю (которому уже 12 лет), при нажатии кнопки отмены. Вот Java-код с методами действий:

Код: Выделить всё

public class CustomerApproveTypeAction extends AbstractCustomerApproveTypeAction {
private final Log log = LogFactory.getLog(CustomerApproveTypeAction.class);

public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'edit' method - QS: " + request.getQueryString());
}

return mapping.findForward("edit");
}

return mapping.findForward("home");
}

/**
* Save the info from the screen (being edited)
*
*
*/
public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'save' method...");
}

return new ActionForward("/report.html?meth=viewResult&bc=" + kc);
}

/**
* Approve the info from the screen (being edited)
*
*
*/
public ActionForward approve(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'approve' method...");
}

return new ActionForward("/report.html?meth=viewResult&kc=" + kc);
}

public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward("home");
}

}
А вот как все методы вызываются из JSP (customerApproveType.jsp), и все они отлично работают при нажатии кнопок «Утвердить» и «Сохранить».

Код: Выделить всё


Approve




Save Cancel

Однако, как только нажата кнопка отмены, я продолжаю получать:

Код: Выделить всё

[INFO] SEVERE: Servlet.service() for servlet [action] in context with path [/myapp] threw exception [java.lang.NoSuchMethodException: Action[/customerApproveType] does not contain specified method (check logs)] with root cause
[INFO] java.lang.NoSuchMethodException: Action[/customerApproveType] does not contain specified method (check logs)

so on and so forth ....

[INFO] org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported
Вот мой класс AbstractCustomerApproveTypeAction:

Код: Выделить всё

public abstract class AbstractCustomerApproveTypeAction extends DispatchAction {

public ActionMessages validateForm(ActionForm form, HttpServletRequest request) {
}

protected void mapFormToBean(UpdateCustomerForm updateCustomerForm, Order order) {

}

private void fillCustomer(CustomerHandler cph, Order order) {

}
protected CustomerHandler updateOrderUsingId(Order order, Integer userId) {

}
protected void updateCtrfile(Order order, Case cs) {

}
protected CustomerFile makeCustomerFile(Order order, Case cs, CustomerHandler cph, Manager mgr) {

return customerFile;
}
}
и struts-config.xml, где компонент определен для CustomerApproveTypeAction Поскольку у кнопки отмены нет события onclick, как у других кнопок, таких как onclick="this.form.meth.value='save'" (например, ). Пожалуйста, объясните, если мое мнение здесь неверно. Думаю, я могу определить метод действия для кнопки отмены и вызвать его как "onclick="this.form.meth.value='cancel'", но я надеялся, что неуказанный метод позаботится об этом. об этом.


Подробнее здесь: https://stackoverflow.com/questions/781 ... -exception

Вернуться в «JAVA»