首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Struts 2操作方法

Struts 2操作方法
EN

Stack Overflow用户
提问于 2010-07-14 03:51:40
回答 1查看 948关注 0票数 1

又到了另一个愚蠢的问题,增加了一长串这样的问题。

我是Struts2的新手,多年来一直在使用老的1.X。Struts2的操作可以大致等同于Struts1的DispatchActions,只需添加方法(并在struts.xml中定义它们)。

所以,假设我有这个方法:

代码语言:javascript
运行
复制
public String create() throws Exception {
    // insert create logic here
}

我想要的是让create()执行双重任务。如果在没有传递任何参数的情况下调用create(),它将返回输入(并显示JSP表单页面),否则它将处理表单数据并返回成功(并显示默认页面)。

我现在唯一的方法是检查并查看请求中是否有任何值,这对我来说似乎很愚蠢。如果我可以说“如果我通过HTTP GET调用,显示表单,如果我通过HTTP POST调用,那么流程将重定向到默认值”。

就像我说的,我在这里可能是相当愚蠢的,但任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2011-02-06 11:15:48

您正在寻找的是使用相同的操作来显示表单,然后(在提交之后)处理表单。

代码语言:javascript
运行
复制
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方法调用executesubmit方法,则需要创建自定义拦截器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3240912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档