当前位置: 首页 > 知识库问答 >
问题:

在Spring MVC中绑定UUID

王叶五
2023-03-14

在Spring MVC中绑定UUID最简单的方法是什么?

@RequestMapping("/MyController.myAction.mvc")
@ResponseBody
public String myAction(UUID id, String myParam)...

使用上面的方法,我当前会遇到以下异常:

org.springframework.beans.BeanInstantiationException: 
Could not instantiate bean class [java.util.UUID]: 
No default constructor found; 
nested exception is java.lang.NoSuchMethodException: java.util.UUID.<init>()

关于这个问题,还有其他问题,但似乎没有人回答它。我正在使用Spring 3.最新(实际上是4个EA)。我在寻找最新、最简单的方法来实现这一点。

共有3个答案

冯良才
2023-03-14

如果它作为Header参数出现,请使用

@RequestHeader(value="UUID") String id

如果它是模型的话

@ModelAttribute(value="ModelName") Entity modelName
郤仰岳
2023-03-14

从版本3.2开始,Spring Framework(核心)中提供了下面的转换器。

org.springframework.core.convert.support.StringToUUIDConverter<String, java.util.UUID>
公孙河
2023-03-14

UUID是一个不能简单实例化的类。假设它作为请求参数出现,您应该首先使用@RequestParam注释参数。

@RequestMapping("/MyController.myAction.mvc")
@ResponseBody
public String myAction(@RequestParam UUID id, String myParam)...

现在,它期望在请求中有一个名为< code>id的请求参数。该参数将由Spring自动注册的< code > StringToUUIDConverter 转换为< code>UUID。

在Spring3.2之前

没有< code > StringToUUIDConverter ,所以你必须自己编写和注册转换器。

public class StringToUUIDConverter implements Converter<String, UUID> {
    public UUID convert(String source) {
        return UUID.fromString(source);
    }
}

将此类挂接到转换服务,并且应该对请求参数进行 UUID 转换。(如果它是一个请求标头,这也可以工作,基本上对于进入转换服务的所有内容)。您可能还希望有一个用于另一种方式的转换器(UUID -

在参考指南中很好地解释了将其连接到Spring MVC(假设您使用xml配置)。但简而言之:

<mvc:annotation-driven conversion-service="conversionService"/>

<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <bean class="org.company.converter.StringToUUIDConverter"/>
        </set>
    </property>
</bean>
 类似资料:
  • 下面是我的控制器和Init活页夹 这样,我想要的日期格式就不起作用了,这是我得到的输出expenseDate=Wed Mar 18 05:30:00 IST 2015,但我希望它变成一种特定的格式,比如yyyy-MM-dd。。。建议我怎么做。

  • 本文向大家介绍SpringMVC实现数据绑定及表单标签,包括了SpringMVC实现数据绑定及表单标签的使用技巧和注意事项,需要的朋友参考一下 首先理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 但我们提交后,为了将请求信息映射到模型中,还需要手动进行格式转换,此外还借助了一个中转对象productForm,其字段名称和Produ

  • 问题内容: 在我的Javafx应用程序中,我有一个图库。我想做的是,只要文件夹中有可用的图像,它就应该在屏幕上显示该图像。 反正有绑定到中。就像其他任何字符串或属性一样?我可以有一个叫做ImageProperty的东西,它将被绑定到Image上。因此,如果我更改ImageProperty中的图像,它将更新UI 问题答案: 做完了 ImageView具有可以绑定ObjectProperty的Obje

  • 是否可以将JavaFX滑块中的双精度值绑定到标签?我想得到这样的东西: 谢谢你的帮助。

  • 问题内容: 有没有一种简单的方法就可以在PDO中绑定多个值而无需重新分配?看下面的代码: 在这里,我以重复的方式将值绑定了4次。那么,有没有一种简单的方法可以在PDO中绑定多个值? 问题答案: 只要您可以将值视为(字符串),就可以始终将其绑定在参数中。 您可以像任何数组一样使用传递的数组:

  • 在我的程序中,我使用了2种纹理:t0和t1。t1是附加的,仅在某些情况下需要: 绘图着色器: 它的工作原理很好:第二个纹理在需要时首先重叠。假设使用glBindTexture(..,0)返回零纹理(0,0,0,0),但在将NVidia驱动程序更新到314.07后,我的代码会出现黑屏,比如glBindTexture(..,0)返回(0,0,0,1)纹理。 我做了一些测试:使用着色器 我在旧驱动程序(

  • 问题内容: 我的理解是,在下面的代码中,两个绑定只会 延迟地绑定一次 : 但是,在以下情况下 每个摘要 都会更新吗? 而 如何一次性约束力嵌套的小号? 问题答案: 方案1: 这两个表达式都是一次性的。添加项目或更改现有项目的名称将不会反映出来。 演示: http : //plnkr.co/edit/53r8FCmcNKNK4MmM6Uzxp2?p=preview 方案2: 第一个表达式将是一次性的

  • if绑定 if绑定应用在页面元素中,并通过表达式判断是否为元素添加子元素的绑定。if绑定在功能上非常像visible绑定,但在实现上却有很大的不同。visible绑定是为元素添加css样式来控制元素是否显示,if绑定是控制元素的字元素,如果表达式为true,则为元素添加子元素,否则清空子元素。 示例代码: //.W片段 <label> <input type="checkbox" bind-c