我使用 JAXB 进行解组过程,请求来自 UI 到我们的服务类。下面是 XML 请求的格式。
<SampleRequest user="testUser" account="testAccount" Specifier= "value1a,value1b,value1c : name2a,value2b,value2c"/>
我的要求是,Specifier 属性有多个值系列(:冒号分隔)我需要将每个系列值映射到我的自定义 java 类
我试过这种方式
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SampleRequest {
@XmlAttribute
private String user;
@XmlAttribute
private String account;
@XmlAttribute(name="Specifier")
private List<Specifier> specifier;
}
说明符.java
@XmlJavaTypeAdapter(SpecifierAdapter.class)
public class Specifier {
}
说明符适配器.java
public class SpecifierAdapter extends XmlAdapter{
@Override
public Object marshal(Object arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public Object unmarshal(Object arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
编辑部分
类说明符有 3 个字符串属性。
class Specifier
{
String value1;
String value2;
String value3;
}
我需要每个系列的说明符例如 (value1a,value1b,value1c) 应该分别映射到 value1 , value2 , value3
编辑第 3 部分
嗨, 感谢您的回复,我试图解组这个例子,我发现,我得到了空
这是我通过的请求
<sampleRequest user="user" account="account" Specifier="v1,v2,v3 : a1,a2,a3"/>
只是想确保,我的说明符类是否正确?(因为我在这里没有使用任何注释)
package com;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@XmlJavaTypeAdapter(SpecifierAdapter.class)
public class Specifier {
Specifier(String v1 , String v2 , String v3)
{
}
String value1;
public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
public String getValue3() {
return value3;
}
public void setValue3(String value3) {
this.value3 = value3;
}
String value2;
String value3;
}