基于标题内容

时间:2016-12-08 16:54:55

标签: java spring spring-mvc

我必须实现返回不同数据类型的相同端点。我不能在URL中使用版本控制,所以只是想知道我如何使用标题内容将请求映射到基于标题值。

例如,我将在标题val1中发送val2decider。我想拥有像

这样的控制器方法
@RequestMapping(value = "\someUrl")
public firstReturnType someMethod() {

} 

@RequestMapping(value = "\someUrl")
public secondReturnType someOtherMethod() {

} 

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这是HTTP标头列表:https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

您可以看到,您没有可以根据自己的需求或任何其他自定义需求使用的HTTP标头。

我建议通过添加HTTP动词,GET,POST,DELETE,PUT来区分这两种方法。

或者只是将您的网址更改为:

  public class MainActivity extends AppCompatActivity {

        private boolean fabClicked = false;
        @BindView(R.id.fab_one) FloatingActionButton fabOne;
        @BindView(R.id.fab_two) FloatingActionButton fabTwo;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            ButterKnife.bind(this);
        }

        @Optional
        @OnClick({R.id.fab_one, R.id.fab_two})
        public void doSomething(View view) {
            switch (view.getId()) {
                case R.id.fab_one:
                    //
                    break;
                case R.id.fab_two:
                    //
                    break;
                default:
                    break;
            }
        }

        public boolean getFabMenuClicked() {
            return fabMenuClicked;
        }
    }

或者只使用一种方法并使用if语句来决定返回哪个答案:

@RequestMapping(value = "/someUrl/{id}")