如何在 struts2 中映射长 REST url - 使用 struts2 rest 插件

Posted

技术标签:

【中文标题】如何在 struts2 中映射长 REST url - 使用 struts2 rest 插件【英文标题】:How to map long REST urls in struts2 - using struts2 rest plugin 【发布时间】:2013-03-29 03:52:26 【问题描述】:

过去几天我一直在学习使用 struts2 rest 插件。但是我没有找到如何映射长休息 URL。

例如 如果我想映射如下 URL:

/profiles/user-test/orders/64/item/4

在哪里

username is user-test
order id is 64
item id is 4

如何将这样的内容映射到 struts2 动作?

我在互联网上发现的只是一个正在编辑/显示的单个级别等。但是如果我想在多个级别上显示某些内容 - 那么如何进行?请指导。

【问题讨论】:

【参考方案1】:

您可以使用Advanced Wildcard Mappings 完成此操作,无需 REST 插件:

/profiles/user-test/orders/64/item/4

用户名是用户测试

订单编号为 64

项目 ID 为 4

此示例所需的操作配置为:

<action name="/profiles/username/orders/order/item/item" class="fooBarAction">
    <result>fooBar.jsp</result>
</action>

【讨论】:

成功了!!..抱歉回复晚了,我正在参加大学考试。 虽然它不能直接工作,但我不得不使用正则表达式来防止用户名在profiles/之后跨越完整的url,同样,我将正则表达式与其他named变量一起使用。 如果您愿意,请回答您自己的问题,以帮助未来的访客:) 那么 Struts2 REST 插件只对单级 URL 有用吗? :( 。谢谢你的回答,我也试试看。 这种映射在与 REST API 一起使用时不起作用。我的意思是,如果有动作/控制器说,movies actors reviews 并检查特定movieactorsreviews,我们将拥有像movies/movie_id/actors/actor_id 或@ 这样的URL 987654333@。但是由于'moves` actors reviews 本身就是动作,它并没有按照我们想要的方式工作......不知道为什么,就是这样。任何人都可以看看这个问题吗? ***.com/questions/71044199/…

以上是关于如何在 struts2 中映射长 REST url - 使用 struts2 rest 插件的主要内容,如果未能解决你的问题,请参考以下文章

过滤器映射 URL 模式 *.action 不起作用 struts2

Spring REST 请求映射

如何在java中进行rest api调用并映射响应对象?

day02-REST和SpringMVC映射请求数据

如何使用两个 URL 映射

如何使用 Spring Security Oauth 保护 Struts2 Rest 服务