自定义方法struts2 rest插件

时间:2015-04-28 16:27:12

标签: java rest struts2

default映射逻辑类似,我想为休息服务创建自己的自定义方法。

  1. 编辑新电影的默认方法: GET:/ movies / new =>方法= editNew
  2. 我的自定义方法: GET:/ movies / customMethod =>方法= customMethod
  3. 自定义方法不允许使用ID参数。

    其他自定义方法:

    1. 我的自定义方法: POST:/ movies / {ID} / customMethod =>方法= customMethod
    2. 我的自定义方法:获取:/ movies / {ID} / actors =>方法= actorOfOneMovie
    3. 我的配置:

        <constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper" />
        <constant name="struts.mapper.prefixMapping" value="/api:rest, :struts"/>
        <constant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
        <constant name="struts.enable.SlashesInActionNames" value="false" />
        <constant name="struts.convention.action.suffix" value="Action, Controller" />
        <constant name="struts.convention.action.mapAllMatches" value="true" />
        <constant name="struts.convention.default.parent.package" value="rest-default" />
        <constant name="struts.convention.package.locators" value="api" />
        <constant name="struts.rest.namespace" value="/api" />
        <constant name="struts.rest.defaultExtension" value="json" />
      

      和相关包裹:

        <package name="api" namespace="/api" extends="rest-default">
      <result-types>
        <result-type name="redirect"
          class="org.apache.struts2.dispatcher.ServletRedirectResult">
          <param name="statusCode">303</param>
        </result-type>
        <result-type name="redirectAction"
          class="org.apache.struts2.dispatcher.ServletActionRedirectResult">
          <param name="statusCode">303</param>
        </result-type>
      </result-types>
      <action name="movies/*" class="api.MoviesController">
      <param name="id">{1}</param> 
      </action>
      

      使用此配置,示例1,3和4正常工作。 如果我调用示例2,struts2会使用默认方法 show 映射URL。

      问题:

      1. 是否有允许我的情况的配置 - 即创建customMethod?
      2. 是否可以将http请求限制为特定的VERB?

0 个答案:

没有答案