RESTful Struts2 webservice с несколькими параметрами [дублировать]

Этот вопрос является точной копией:

Я пишу веб-сервис, который имеет несколько параметров в 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.

1 ответ

  1. Да, можно.

    Установите эти константы в распорках.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>
    

    Конечно, в вашем действии должны быть задатели свойств.

    Он называется Advanced Wildcards в Struts2 и доступен с 2.1.9.