又到了另一个愚蠢的问题,增加了一长串这样的问题。
我是Struts2的新手,多年来一直在使用老的1.X。Struts2的操作可以大致等同于Struts1的DispatchActions,只需添加方法(并在struts.xml中定义它们)。
所以,假设我有这个方法:
public String create() throws Exception {
// insert create logic here
}
我想要的是让create()执行双重任务。如果在没有传递任何参数的情况下调用create(),它将返回输入(并显示JSP表单页面),否则它将处理表单数据并返回成功(并显示默认页面)。
我现在唯一的方法是检查并查看请求中是否有任何值,这对我来说似乎很愚蠢。如果我可以说“如果我通过HTTP GET调用,显示表单,如果我通过HTTP POST调用,那么流程将重定向到默认值”。
就像我说的,我在这里可能是相当愚蠢的,但任何帮助都将不胜感激。
发布于 2011-02-06 11:15:48
您正在寻找的是使用相同的操作来显示表单,然后(在提交之后)处理表单。
public class MyAction {
@SkipValidation
public String execute() throws Exception {
return INPUT; // shows the form
}
public void validate() {
// do your validations here...
}
public String submit() throws Exception {
// process the form
// redirect somewhere
}
}
如果您的操作被映射为"myaction",那么您的表单应该提交给"myaction! submit“(这是动态方法调用,它调用您的submit()
方法)。
如果希望强制仅由HTTP GET和POST方法调用execute
和submit
方法,则需要创建自定义拦截器。
https://stackoverflow.com/questions/3240912
复制相似问题