@RequestMapping(value = "/Fin_AddBankAccount", method = RequestMethod.POST)
public @ResponseBody JsonResponse addCoaCategory(
@RequestParam(value="code", required=true) long code,
@RequestParam(value="startFrom", required=true) long startFrom,
@RequestParam(value="name", required=true, defaultValue="N/A") String name)
{
}
defaultValue =“N / A”无效,因为我没有在名称字段中提供任何文本,它在数据库中存储null而不是“N / A”?
答案 0 :(得分:3)
如果您真的想要该参数,设置默认值的重点是什么。 如果您将其标记为必需true(不需要,因为它是默认值),则不需要默认值。 如果该参数不是必需的,则将其标记为false并给出默认值。
答案 1 :(得分:1)
Spring RequestParam.required
默认值为true,导致在请求中缺少参数的情况下抛出异常。如果您在参数缺失的情况下更喜欢null,请将其切换为false。
根据您的问题,我发现您使用POST请求发送参数name
为空值。根据Spring文档,您不应在请求中发送name
参数以使用默认值。只需从HTML表单中删除name
字段即可。
似乎默认值对GET请求更有意义。
答案 2 :(得分:0)
在我的项目中
@RequestParam(value="name", required=true, defaultValue="N/A") String name
当没有提供requestparam“name”时,此代码正确地将name变量设置为defaultvalue N / A.我的猜测是你没有正确地将这个名称变量插入到表中,因此数据库存储的是null而不是“N / A”。请告诉我们或仔细检查数据访问对象代码。祝你好运
谢谢@TiarêBalbi,事实上你不需要“required = true”因为defaultValue =“N / A”隐含地将这个变量设置为required = false。
答案 3 :(得分:0)
确保您不传递空字符串值 有效方法: 1. Fin_AddBankAccount?name = O / P:name =“ N / A”
无效方法: Fin_AddBankAccount?name =“” 这会将空字符串设置为变量,即name =“”;