RESTful Struts2 具有多个参数的网络服务

RESTful Struts2 webservice with multiple parameters

我正在编写一个在 url 中有多个参数的网络服务。我知道我可以用 jax-rs 做到这一点,但我可以用 Struts2 做到这一点吗?

我可能在 JAX-RS 中做了什么:

    @Path("/{service}/{companyName}/{acctId}")
    public Response acceptPostAccount(@PathParam("service") String service,
                                @PathParam("companyName") String companyName,
                                @PathParam("acctid") String acct)

我想要Struts2:

@Path({@PathParam("service"),@PathParam("companyName"),@PathParam("acctId")})
private String service;
private String companyName;
private String acctId;

// Setters omitted for brevity.

或任何其他可以将路径参数映射到操作字段的排序配置。

我在网上看到的所有文档和示例都显示一个名为 Id 的参数。

是的,你可以。

在 struts.xml 中设置这些常量。

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

然后将动作定义为:

<action name="/{service}/{companyName}/{acctId}">
   ...
</action>

当然,您的操作中需要有属性设置器。

它在 Struts2 中被称为 Advanced Wildcards,从 2.1.9 开始可用。