参数-spring-rest风格传参问题

问题描述

spring-rest风格传参问题

最近手上一个项目,碰到spring REST风格传参的问题,参考代码:

@RequestMapping(value="/aa/{bb}/w/{width}/h/{high}", method=RequestMethod.GET)
    public void testRest(@PathVariable("bb") String name,
            @PathVariable("width") String width,
            @PathVariable("high") String high, HttpServletResponse res) {
        //...
    }

完整访问路径:
http://localhost:8080/Test/aa/bb/w/100/h/100

现在涉及关联系统会有其中某个参数不传的情况,如:
http://localhost:8080/Test/aa/bb/w/100 --这里h参数没传,默认它的值为 0
http://localhost:8080/Test/aa/bb/h/100 --这里w参数没传,默认它的值为 0

但@RequestMapping标签又必须得全部参数匹配到才行,现在我能想到的几种思路:
1.缩短@RequestMapping("/aa/{bb}")从请求里面得到url,再对参展做相应处理
2.在配置文件里面添加拦截器针对我的Controller的方法的映射路径做正则匹配
3.在@RequestMapping ()里面用正则做匹配处理(首选)

第1种方式基本pass了,正则表达是弱项,望各种大神指教下,2、3二种处理方式
正则表达示该怎么写,好匹配上面二种某个参数不传的情况呢?

谢谢!~

时间: 2024-10-25 01:51:25

参数-spring-rest风格传参问题的相关文章

关于Mybatis传参的问题

问题描述 关于Mybatis传参的问题 Mybatis框架执行SQL语句,控制台打印如下:==> Preparing: select ID LOGIN_TEL... from TABLE WHERE ( LOGIN_TEL = ? )==> Parameters: ' or '1'!='2(String)请问下,为什么把此SQL在PL/SQL中执行可以查出结果,通过代码执行却查不出结果呢?在PLSQL执行如下语句:select ID LOGIN_TEL... from TABLE WHERE

ajax传参问题-ajax向servlet传参问题

问题描述 ajax向servlet传参问题 在一个ajax中能不能同时出现两种传参方式 我现在试的结果是 直接在url中加一个参数,然后在data:{"data":dataFromAjax}中再加一个参数 在servlet中debug看到 值接收到URL中的参数 这是不是说 在同一个ajax中只能出现一种参数传递方式 且URL传参优先级比较高

详述ASP.Net中页面之间传参方法_实用技巧

ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事情,在使用事件驱动编程模型的ASP.NET就不是那么容易了,当然了,我们仍然有一些方法可以实现同样的功能. 本文将试着使用不同的可能的方法来解决这个问题,但可以预见是,本文将包含使用querystring,session变量以及server.Transfer方法来实现页面间的值传递. 使用Query

Python中字符串的修改及传参详解_python

发现问题 最近在面试的时候遇到一个题目,选择用JavaScript或者Python实现字符串反转,我选择了Python,然后写出了代码(错误的): #!/usr/bin/env python #-*-coding:utf-8-*- __author__ = 'ZhangHe' def reverse(s): l = 0 r = len(s) - 1 while l < r: s[l],s[r] = s[r],s[l] l += 1 r -= 1 return s 然后面试官问了两个问题: (1)

springMVC3.0(文件上传,@RequestMapping加参数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传参,ajax,拦截器)

1.项目包结构如下: 2.       spring配置文件springMVC.xml修改如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xml

图片-jsp页面传参问题(参数长度太长)

问题描述 jsp页面传参问题(参数长度太长) < img src=""../admin/image-read.action?icode=${data.icode}""/> 其中icode是一个图片的二进制数据串,比较长,传不到后台.有什么其他方法? 解决方案 这个方式肯定不行啊,虽然没明白你是不是直接从前台获取一个本地图片然后在jsp中转成二进制的,但是这样肯定传不了的.可以使用ajax form提交提交后也不刷新当前页面. 解决方案二: jsp页面传到

spring mvc-springmvc 传参问题,请戳进来看看

问题描述 springmvc 传参问题,请戳进来看看 首先 springmvc的请求路劲都是requestMapping 来访问的. @RequestMapping("/public/stockStatistics/stockOrder") public String stockOrder(HttpServletRequest request,StatisticsForm statisticsForm,Map model) throws Exception {} 当请求是没有参数,或者

ireport用xml作为数据源传参到子报表时,找不到匹配参数

问题描述 ireport用xml作为数据源传参到子报表时,找不到匹配参数 在使用ireport(5.6)是制作子报表与父报表连接时.一直找不到解决xml为数据也参数传递的问题,多为sql语言.在使用XPath的情况下换搜不到该参数(|| 不知道怎么搜),而换另外的(如:sql)又会报错,不能read fields.请大家帮忙解答 解决方案 http://blog.csdn.net/liunian02050328/article/details/38893059 解决方案二: 不好意思,初学者,追

限时传参-bat文件在5秒内传参,如果没传参数,则给默认值

问题描述 bat文件在5秒内传参,如果没传参数,则给默认值 我写个bat文件,要求在5秒内传入yes或者no如果过了时间,没有响应,则默认为no, 哪位大侠能帮帮忙 解决方案 大概是这样吧,可以再按照自己的条件修改 set /p abc=请在5秒内输入yes或者no: ping -n 5 127.0.0.0>nul if "%abc%"=="" set abc=no