如何在struts action中识别重定向和提交
我的网站使用支柱和图块。 我使用此链接链接到注册表格:
<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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的
标记中,您可以指定要在 RegisterAction 中调用的特定方法:然后在您的操作中定义:
这样表单提交将调用execute(),而上面的链接将调用 yourRedirectMethodName()。
In your
<s:url>
tag you can specify a specific method you want to invoke in your RegisterAction:And then in your action define:
That way form submits will invoke execute() whereas the above link will invoke yourRedirectMethodName().