【发布时间】:2018-02-23 21:40:52
【问题描述】:
我不熟悉 struts2,但我知道方法 execute() 在按名称调用操作期间在 Action 中被默认调用。但是如何调用同一个action类中定义的其他方法呢?
在下面的示例中,当我在 ajax 中设置 url 链接时调用 execute() 方法:saveJSONDataAction.action 感谢@Action 注释。
通过 ajax 调用 otherMethod() 的 url 应该是怎样的?
动作类:
@ParentPackage("json-default")
@Action(value="getJSONDataAction")
@Result(name="success", type="json")
public class JSONDataAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private List<Report> data = new ArrayList<Report>();
public JSONDataAction(){
data.add(new Report(1, "Chris", true, "2008-01-01", "orange"));
}
public String execute() {
return SUCCESS;
}
public String otherMethod() {
//do something else ..
return SUCCESS;
}
// getters and setters
}
Ajax 调用:
$.ajax({
url: "../json/saveJSONDataAction.action",
data: data,
dataType: 'json',
contentType: 'application/json',
type: 'POST',
success: function (res) {
if (res.result === 'ok') {
$console.text('Data saved');
}
}
});
ajax如何调用otherMethod()方法?
【问题讨论】:
-
我认为有一个带有感叹号的语法 - 比如
/json/saveJSONDataAction!otherMethod.action。