为什么我们需要全球前锋和全球例外?
2022-09-05 00:06:03
我有一个基本问题,为什么我们需要在支柱配置中.xml。如果我们能用自己实现同样的事情。<global-forwards>
<global-exceptions>
<action-mappings>
我有一个基本问题,为什么我们需要在支柱配置中.xml。如果我们能用自己实现同样的事情。<global-forwards>
<global-exceptions>
<action-mappings>
<global-forwards>
考虑您正在验证不同网址的用户名密码,例如
update.do
insert.do
delete.do
如果是有效用户,则需要继续执行必要的操作。如果没有,您需要转发到登录页面。如果没有全局转发,则必须将表单映射表单添加到每个操作:login
<action-mappings>
<action path="/insert" type="controller.Insert">
<forward name="success" path="/insert.jsp"/>
<forward name="failure" path="/login.jsp"/>
</action>
<action path="/update" type="controller.Update">
<forward name="success" path="/update.jsp"/>
<forward name="failure" path="/login.jsp"/>
</action>
<action path="/delete" type="controller.Delete">
<forward name="success" path="/delete.jsp"/>
<forward name="failure" path="/login.jsp"/>
</action>
</action-mappings>
无需重复,您可以在下面声明这一点<forward name="failure" path="/login.jsp"/>
<global-forwards>
<global-forwards>
<forward name="failure" path="/login.jsp"/>
</global-forwards>
现在,您可以删除操作中的映射。<forward name="failure" path="/login.jsp"/>
<global-exceptions>
当您收到异常时,您可以全局声明,而不是手动处理每个异常,如下所示。java.Io
<global-exceptions>
<exception type="java.io.IOException" path="/pages/error.jsp"/>
</global-exceptions>
我希望这能澄清你的问题。
如果您正在谈论Struts 1,那么它是否处理所有操作的一些操作,因此您不必为每个操作声明它并避免重复。global-exceptions
ExceptionHandlers
Exception
Global-forwards
有同样的想法。如果在不同的操作中具有具有相同路径的转发,则可以通过仅声明一个并且所有操作都可以使用它来避免重复。您还可以避免在jsps中使用硬编码的URL,例如,您可以声明一个全局转发,然后在jsp中。global-forward
global-forwards
<forward name="loginLink" path="/login" />
<html:link forward="loginLink">Login</html:link>