如何在struts action中识别重定向和提交

发布于 2024-09-10 16:16:29 字数 1589 浏览 5 评论 0原文

我的网站使用支柱和图块。 我使用此链接链接到注册表格:

<a href='<s:url action="register" namespace="/vtv"  />' >Register</a>

这里是 register.jsp:

<s:form namespace="/vtv" action="register">
        <s:textfield label="Username" name="username" />
        <s:textfield label="Password" name="password" />
</s:form>

在操作中,我插入用户:

public String execute() {
    String retVal = ERROR;
    try {
            MemberDAO.InsertUser(mo);
            retVal = SUCCESS;
        }
    } catch (Exception e) {
        retVal = ERROR;
    }
    return retVal;
}

在tiles文件中,我定义:

<definition name="vtv.register" extends="basic">
    <put-attribute name="content" value="/modules/register/register.jsp" />
</definition>

并在struts文件中:

    <package name="Register" namespace="/vtv" extends="struts-default">
    <result-types>
        <result-type name="tiles"
                     class="org.apache.struts2.views.tiles.TilesResult" />
    </result-types>
    <action name="register" class="vtv.action.RegisterAction">
        <result name="success" type="tiles">vtv.register</result>
        <result name="error" type="tiles">vtv.error</result>
    </action>
</package>

我的问题是如何使用链接重定向到注册页面

<a href='<s:url action="register" namespace="/vtv"  />' >Register</a>

而不需要在行动中执行?我怎么知道这是重定向还是提交?

My website use struts and tiles.
I use this link to link to register form:

<a href='<s:url action="register" namespace="/vtv"  />' >Register</a>

here is the register.jsp:

<s:form namespace="/vtv" action="register">
        <s:textfield label="Username" name="username" />
        <s:textfield label="Password" name="password" />
</s:form>

In action, i insert the user :

public String execute() {
    String retVal = ERROR;
    try {
            MemberDAO.InsertUser(mo);
            retVal = SUCCESS;
        }
    } catch (Exception e) {
        retVal = ERROR;
    }
    return retVal;
}

in tiles file, i define:

<definition name="vtv.register" extends="basic">
    <put-attribute name="content" value="/modules/register/register.jsp" />
</definition>

and in struts file:

    <package name="Register" namespace="/vtv" extends="struts-default">
    <result-types>
        <result-type name="tiles"
                     class="org.apache.struts2.views.tiles.TilesResult" />
    </result-types>
    <action name="register" class="vtv.action.RegisterAction">
        <result name="success" type="tiles">vtv.register</result>
        <result name="error" type="tiles">vtv.error</result>
    </action>
</package>

My problem is how can i redirect to register page using link

<a href='<s:url action="register" namespace="/vtv"  />' >Register</a>

without doing the execute in action ? How can i know if this is redirect or submit ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我鬧 2024-09-17 16:16:29

在您的 标记中,您可以指定要在 RegisterAction 中调用的特定方法:

<s:url action="register" method="yourRedirectMethodName" namespace="/vtv"  />

然后在您的操作中定义:

public String yourRedirectMethodName() {
    // Redirect logic
    return SUCCESS;
}

这样表单提交将调用execute(),而上面的链接将调用 yourRedirectMethodName()。

In your <s:url> tag you can specify a specific method you want to invoke in your RegisterAction:

<s:url action="register" method="yourRedirectMethodName" namespace="/vtv"  />

And then in your action define:

public String yourRedirectMethodName() {
    // Redirect logic
    return SUCCESS;
}

That way form submits will invoke execute() whereas the above link will invoke yourRedirectMethodName().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文