gpt4 book ai didi

java - struts2中如何从url接收get参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:41:51 28 4
gpt4 key购买 nike

我正在使用 struts2 并进行了配置,因此 url 看起来像www.myweb.com/index 而不是 www.myweb.com/index.action

但现在我面临的问题是我应该如何在 struts.xml 文件中映射并获取请求参数与在 struts1 中一样,我可以通过 mapping.getParameters() 接收它,但是在 struts2 中有什么可用的呢?

<action path="/profile/*"
type="net.viralpatel.struts.cleanurl.ProfileAction"
parameter="{1}">
<forward name="success" path="/profile.jsp" />
<forward name="fail" path="/profile.jsp" />
</action>

字符串参数 = mapping.getParameter();

所以在struts2中如果我点击www.myweb.com/index/p=2www.myweb.com/index/biz/name/这里的biz & name是2个参数/www.myweb.com/index/biz/name/23/这里的biz&name&23是参数/

谢谢

最佳答案

您可以使用通配符模式来传递参数。

<action name="/profile/*" class="net.viralpatel.struts.cleanurl.ProfileAction">
<param name="id">{1}</param>
<result>
<param name="location">/profile.jsp</param>
<param name="id">{1}</param>
</result>
</action>

你也可以使用命名参数

<constant name="struts.patternMatcher" value="namedVariable"/>


@Namespace{"/users/{userID}");
public class ProfileAction exends ActionSupport {
private Long userID;
public void setUserID(Long userID) {...}
}

如果请求 URL 是 /users/10/detail , 然后将执行 ProfileAction 及其 userID字段将设置为 10

Action 名称后的参数

要在 URL 中使用参数,在操作名称之后,确保已设置:

 <constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>

然后 Action 映射将如下所示:

 <package name="edit" extends="struts-default" namespace="/edit">
<action name="/profile/*" class="net.viralpatel.struts.cleanurl.ProfileAction">
<param name="id">{1}</param>
<result>/profile.jsp</result>
</action>
</package>

当 URL 像 /edit/profile/123被请求时,将调用 ProfileAction,并将其“id”字段设置为 123

关于java - struts2中如何从url接收get参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10768530/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com