最初,我正在试图找出什么
<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
教程确实说:
“我们可以在<result...>
元素的正文中提供位置,也可以作为<param
name="location">
元素。重定向也支持parse参数。这是一个例子
使用XML配置:“
位置是否等于网址或其他内容?
我用谷歌搜索了,在下面这两个网站中,虽然我能理解<param name="fruit">
,但我不明白它是如何变成
<s:param name="fruit">
,注意s。我知道struts的代表并且是一个struts元素,但这与
有什么关系<param name=”fruit">
?一个是在xml文件中,另一个是在jsp中。
http://struts.apache.org/release/2.3.x/docs/param.html “Struts 2”param“标签用于参数化其他标签。”我也不明白这意味着什么,以及它与我原来的问题有什么关系。
红色混淆的原始来源,更具体地说,<param name=”location”>
是什么意思?
答案 0 :(得分:0)
似乎代码用于重定向到新页面,将传递location参数以定义需要显示的页面。 (请求应重定向到)
答案 1 :(得分:0)
<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参数,默认情况下为true。 parse参数确定是否将为OGNL表达式解析location参数。
答案 2 :(得分:0)
在结果配置中,param
标记指定了Result
的属性,该属性将在执行结果时设置。此属性可能出现在ServletRedirectResult
中。此类由struts-default.xml
中的结果类型配置确定。有关重定向结果的更多信息,您可以找到here。 location
是默认属性,因此可以在result
代码的正文中进行设置,而无需指定param
。可以在param
中使用struts.xml
标记来设置配置对象的属性。 s:param
标记不同,因为它是JSP标记。 可以用于参数化其他JSP标记,可以填充参数。
答案 3 :(得分:0)
<param name="location">
中的struts.xml
指向应返回的资源。
在您的示例中,它指向位于/NewWorld.jsp
的资源,因此如果您的action-method返回字符串/NewWorld.jsp
,则会呈现并返回success
(作为响应)。
必须将其命名为location
,否则无效。
如果您查看班级org.apache.struts2.dispatcher.StrutsResultSupport
,您会找到名为location
的媒体资源。此属性将使用<param name="location">
。
您还会找到名为encode
的媒体资源。如果您想更改encode
- 属性,请使用<param name="encode">
。
请勿将param
中的struts.xml
- 标记与s.param
- jsp文件(或任何其他资源文件)中使用的标记混淆。他们根本没有关系。
我希望这个答案可以帮助你理解其他答案,因为它们比我的更准确。