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 开始可用。
我正在编写一个在 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 开始可用。