use*_*662 11 java struts java-ee
我在struts中有一个基本问题,为什么我们需要<global-forwards>
和<global-exceptions>
struts-config.xml一样.如果我们能够与<action-mappings>
自己达成同样的目标.
OCJ*_*CJP 38
<global-forwards>
Run Code Online (Sandbox Code Playgroud)
考虑您正在验证不同URL的用户名密码,例如update.do,insert.do delete.do等.如果它是有效用户,您需要继续执行必要的操作.如果没有转发到登录页面.请参阅下面的映射
<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>
Run Code Online (Sandbox Code Playgroud)
而不是重复<forward name="failure" path="/login.jsp"/>
你可以在<global-forwards>
下面声明这个
<global-forwards>
<forward name="failure" path="/login.jsp"/>
</global-forwards>
Run Code Online (Sandbox Code Playgroud)
现在,您可以删除<forward name="failure" path="/login.jsp"/>
动作映射中的内容.
<global-exceptions>
Run Code Online (Sandbox Code Playgroud)
如果您收到java.Io异常而不是手动处理每个异常,您可以全局声明如下.
<global-exceptions>
<exception type="java.io.IOException" path="/pages/error.jsp"/>
</global-exceptions>
Run Code Online (Sandbox Code Playgroud)
我希望这能澄清你的问题.