【问题标题】:Confusing about Global forward and Action mapping对全局前向和动作映射感到困惑
【发布时间】:2012-02-20 05:16:20
【问题描述】:

例如

    <global-forwards>
      <forward name="welcome"  path="/Welcome.do"/>
    </global-forwards>

    <action-mappings>
      <action path="/Welcome" forward="/welcomeStruts.jsp"/>
    </action-mappings>

我的问题是: 当客户端请求 Welcome.do 页面时,全局转发会将 /welcome.do 页面映射到名称属性“welcome”。然后在动作映射中,它将在转发标记中的名称与动作标记中的路径之间进行映射,因此它将知道它应该转发到 welcomeStruts.jsp 文件。
我说的对吗?
如果不是,如何判断用户请求*.do到对应jsp文件的正确映射关系?
谢谢你

【问题讨论】:

    标签: struts struts-1 struts-config


    【解决方案1】:

    你说得不对。当请求进来时,Struts 会尝试将 URL 或请求与动作的路径进行映射。在这个阶段不使用前锋。

    当动作返回一个前锋名称时,Struts首先在动作的前锋中寻找具有该名称的前锋,如果没有找到,则在全局前锋中查找。

    【讨论】:

    • 还有 1 件事,我不明白请求将如何与相应的操作控件映射,我尝试在 web.xml 和 struts-config.xml 中找到映射但我没有看到部分。你能解释一下吗?谢谢
    • 通常,web.xml 有一个 URL 模式 *.do 到 Struts servlet 的映射。然后 Struts servlet 从请求的路径中删除 .do,并找到具有结果路径的操作。
    • 所以你的意思是它会发生在 struts-config.xml 文件的这一部分:
    • 我的意思是请求路径是/AddSelCommand.do,Struts会执行这个动作,因为它的路径是/AddSelCommand。
    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 2017-03-13
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多