rest-springmvc Rest风格参数可能为空时怎么解决

问题描述

springmvc Rest风格参数可能为空时怎么解决
比如有如下的Action方法:

 @RequestMapping(""/test/{p1}/{p2}"")    public String testRest(@RequestParam String p1 @RequestParam String p2){        System.out.println(""p1:""+p1);        System.out.println(""p1:""+p1);        return ""/jsp/test"";    }

那么当访问的URL为:

 http://localhost:8080/test/param1/param2

时会正常打印出

1:param1p2:param2

但是当访问地址为

http://localhost:8080/test/

时就直接报错了,怎样才能实现访问这个url时自动给p1和p2一个默认值呢?
谢谢!

解决方案

@RequestParam(value=""somvalue""required=false) 这个看看呢
或者就是写2遍吧,
@RequestMapping(value=""/json/{type}"" method=RequestMethod.GET)
public @ResponseBody TestBean typedTestBean(HttpServletRequest req @PathVariable String type @RequestParam(""track"") String track) {
return getTestBean(type);
}

@RequestMapping(value=""/json"" method=RequestMethod.GET)
public @ResponseBody TestBean testBean(HttpServletRequest req @RequestParam(""track"") String track) {
return getTestBean();
}

重写源码

解决方案二:
SpringMVC restful风格 url带参数问题

解决方案三:
@RequestParam(required = false)

时间: 2024-10-26 05:48:44

rest-springmvc Rest风格参数可能为空时怎么解决的相关文章

springmvc 对象属性参数接收不到

问题描述 springmvc 对象属性参数接收不到 user.getSysManager()获取到的是空的? 部分代码如下:bean类: public class SysUser extends BaseForm implements Serializable { private static final long serialVersionUID = 8217046986932721581L; private Long USERID; // 用户ID private String LOGINN

OTS构建SpringMVC REST风格的准实时系统

一.简介         利用OTS为系统提供准实时系统交易流水持久化和离线批量数据存储服务.各系统的支撑系统,所有信息都会调用该服务,访问量大,存储和访问速度要求快,故服务的构建采用REST风格(SpringMVC框架天然的支持REST风格请求),对于准实时请求的响应和数据存储,采用NoSQL数据存储,即OTS.           在网站访问量还不大的情况下,单个数据库完全可以应付.随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功

[Spring MVC]-详解SpringMVC的各种参数绑定方式_java

SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" t

上传-springmvc表单参数实体类组装问题

问题描述 springmvc表单参数实体类组装问题 springmvc表单提交之后,会自动将参数和对应的属性set进去,但是这种是将实体的全部属性 都set注入,页面上未传入参数的属性会set为null.怎样让实体类只set页面上传入的参数? 解决方案 sql中的语句只对要修改的属性的进行处理就好了

android6.0版本调用系统相册返回参数cursor为空

问题描述 android6.0版本调用系统相册返回参数cursor为空 Uri selectedImage = data.getData(); pathString = CommonTools.Uri2Path(selectedImage, SharedPhotoActivity.this); /** * 通过uri得到path */ public static String Uri2Path(Uri uri, Context context) { String[] filePathColumn

c#-C#程序调用SQL SERVER存储过程的output参数始终为空,求助?

问题描述 C#程序调用SQL SERVER存储过程的output参数始终为空,求助? C#中的如下两条语句调用存储过程output参数始终为空(dataGridView1能正确调用到想要的select数据,但是存储过程的两个输出参数值不能传递给两个texBox.Text),不知为何?textBox1.Text = parameters[2].Value.ToString();textBox2.Text = nowpage + ""/"" + parameters[3

datetime 空值-DateTime需要为空时,如何插入值?

问题描述 DateTime需要为空时,如何插入值? SQL Server中,DateTime可以为null,而C#中不可以. 属性类型我写为DateTime?,有添加和修改功能需要用到这个字段 在Ajax层获取页面数据时,我加了判断,如果获得的字符串长度为0,则值为null.否则获取字符串并转成DateTime类型. 在数据访问层中,我判断,如果获得的属性值为null那么在SQL语句中不添加此属性的参数,否则添加. 但是在运行时,不管有没有值,都会提示找不到方法:"Void Model层命名空间

get传值时,当之为空时,如何实现跳转

问题描述 get传值时,当之为空时,如何实现跳转 解决方案 解决方案二:为空好像不影响跳转吧解决方案三:不知道你所谓的"get传值"具体是什么?如果你能说得具体而深入一点点,就能知道你说的所谓"跳转"是否有根据.解决方案四:你的问题让别人很难回答啊,最好把你出问题的地方贴出来看看解决方案五:如果是asp.net页面的Redirect重定向,那么任何时候都可以重定向,任何判断都不会发生什么影响.因此在aspx正常的事件处理代码中问这个问题,可能你只是想转移别人注意力(

eb ervice-C# WebService在接收到带参数的接口调用时自动将加密的参数解密

问题描述 C# WebService在接收到带参数的接口调用时自动将加密的参数解密 我的WebService的所有接口调用的参数都是加密过的,而且有接口函数.我在想有没有什么办法,在WebService接收到接口调用请求时,自动将参数解密,而不需要我每个函数内写解密?????? 我暂时没有C币了,有一定奉上 解决方案 我在Spring里面是使用filter过滤器机制来做的!所有的请求都先通过filter,在filter里面做统一的处理,然后再分发到各个具体的controller去.我觉得这种思路