2

在重构 IssueDTO(用作下面返回列表中的元素类型)后,我偶然发现了以下问题:

  • 生成的 JSON 响应已更改字典键(键在我们的 selenium 测试中用作字符串,因此重构破坏了测试)
  • jsf 页面使用字段名称(或转换为 javabeans 命名方法的名称,我不确定)访问 IssueDTO 对象,但访问是文本的,而不是“键入的”

    @GET
    @Path("/issues/{" + LOCALE_PARAM + "}")
    @Produces(MediaType.APPLICATION_JSON)
    public List<IssueDTO> getSlides(@PathParam(LOCALE_PARAM) final String locale) {
        final Locale currentLocale = (locale == null) ? 
            Locale.getDefault() : new  Locale(locale);
        return issues.getIssuesInLocale(currentLocale);
    }

我如何确定我的重构既不会破坏测试也不会破坏 jsf 页面?是否有任何注释可以应用于 IssueDTO 字段,以便“冻结”它们的名称,即将 java 代码名称与非静态类型 javaee 特定上下文使用的代码名称分离?

4

1 回答 1

1

假设一个普通的 JavaEE 应用程序(即带有用于生成 JSON 的 JAXB 注释的 JAX-RS),您可以使用@XmlElement(name = "fixedName")将实际属性名称与其 XMLJSON 表示分离。

于 2013-07-11T10:13:56.410 回答