【问题标题】:What does <param name="location"> mean in struts.xml?struts.xml 中的 <param name="location"> 是什么意思?
【发布时间】:2014-07-08 02:15:08
【问题描述】:

最初,我想弄清楚是什么

<param name="location"> 

表示在struts.xml 文件中,见下文:

<action name="hello" class="com.tutorialspoint.struts2.HelloWorldAction" method="execute">
<result name="success" type="redirect">
<param name="location">
/NewWorld.jsp
</param >
</result>
</action>

来源: http://www.tutorialspoint.com/struts_2/struts_result_types.htm

教程确实说:

"我们可以在&lt;result...&gt; 元素的主体中或&lt;param name="location"&gt; 元素中提供位置。重定向也支持解析参数。这是一个示例 使用 XML 配置:"

那么 location 是否等于 url 或其他内容?

我用谷歌搜索,在下面这两个网站中,虽然我能够理解&lt;param name="fruit"&gt;,但我不明白它是如何变成的

<s:param name="fruit">

,注意 s。我确实知道 struts 代表 Struts 并且是一个 struts 元素,但这与它有什么关系

<param name=”fruit"> 

?一个在 xml 文件中,另一个在 JSP 中。

http://struts.apache.org/release/2.3.x/docs/param.html “Struts 2‘param’标签用于参数化其他标签。”我也不明白这意味着什么以及它与我最初的问题有什么关系。

红色的原始混淆来源,更具体地说,&lt;param name=”location”&gt; 是什么意思?

【问题讨论】:

  • 我不明白下面的任何答案。 是什么意思,它可以是 它到底是做什么的?有人可以用简单的英语写,因为这是一个新手吗?
  • 另外,为什么别人回复我没有收到邮件通知?
  • result 包含将根据您的类代码执行或显示给用户的 jsp 页面的名称。假设您的类方法返回成功并且您的操作标记包含 /success.jsp 。当您的类方法返回成功字符串时,它将显示 sucess.jsp。请参阅我发布的示例。检查这个答案。 stackoverflow.com/a/61402861/11498860

标签: struts2


【解决方案1】:

似乎代码是用来重定向到一个新页面,将传递位置参数来定义需要显示的页面。 (请求应该被重定向到)

【讨论】:

    【解决方案2】:

    示例中的“速记”版本,我们提供了一个 JSP 路径作为结果标记的主体。

    <result name="success" type="dispatcher">   //type="dispatcher" by default so also can ignore this thing
    /WEB-INF/login.jsp
    </result>
    

    我们还可以在元素中使用标签来指定 JSP 文件,以防我们觉得输入的内容不够多。

    <result name="success" type="dispatcher">
    <param name="location">
    /WEB-INF/login.jsp
    </param>
    </result>
    

    我们还可以提供一个解析参数,默认为真。 parse 参数决定是否为 OGNL 表达式解析 location 参数。

    【讨论】:

      【解决方案3】:

      struts.xml 中的&lt;param name="location"&gt; 指向应返回的资源。

      在您的示例中,它指向位于/NewWorld.jsp 的资源,因此如果您的操作方法返回字符串success,则/NewWorld.jsp 将被呈现并返回(作为响应)。

      必须将其命名为location,否则将不起作用。 如果你查看org.apache.struts2.dispatcher.StrutsResultSupport 类,你会发现一个名为location 的属性。此属性将使用来自 &lt;param name="location"&gt; 的值填充。

      您还将找到一个名为 encode 的属性。如果您想更改encode-property,您可以使用&lt;param name="encode"&gt;

      不要将 struts.xml 中的 param-tag 与 jsp 文件(或任何其他资源文件)中使用的 s.param-Tag 混淆。它们根本不相关。

      我希望这个答案可以帮助您理解其他答案,因为它们比我的更准确。

      【讨论】:

        【解决方案4】:

        在结果配置中,param 标签指定了Result 的一个属性,该属性将在结果执行时设置。此属性可能存在于ServletRedirectResult 中。此类由struts-default.xml 中的结果类型配置决定。有关重定向结果的更多信息,您可以找到herelocationdefault 属性,因此可以在 result 标记的正文中设置它而不指定 paramparam 标签可以在struts.xml 中使用来设置配置对象的属性。 s:param 标记不同,因为它是一个 JSP 标记。它可以用来参数化其他可以填充参数的JSP标签。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-29
          • 2011-12-17
          • 1970-01-01
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 2010-11-16
          • 1970-01-01
          相关资源
          最近更新 更多