1.增加工具類
/**
* OffLineUtil.java
*/
package net.tfedu.problem.util;
import com.thoughtworks.xstream.XStream;
import net.tfedu.problem.dto.RootDto;
import net.tfedu.problem.dto.ScreenShotDtoAndAnswer;
import net.tfedu.problem.dto.ScreenshotAnswerDto;
import net.tfedu.problem.util.xstream.DateConverter;
/**
* TODO(這里用一句話描述這個類的作用)
* <p>
* TODO(這里描述這個類補充說明 – 可選)
*
* @author houpengwei(1379902378@qq.com)
* @Date 2019年05月06日
*/
public class OffLineUtil {
/**
*
* TODO 正式數據上傳成功以后在刪除,就是為了測試書寫的方法
* <p>
* TODO(這里描述這個方法詳情– 可選)
*
* @param xStream TODO(這里描述每個參數,如果有返回值描述返回值,如果有異常描述異常)
*/
public static void xStreamUploadAliasEntity(XStream xStream) {
xStream.registerConverter(new DateConverter());
xStream.alias("root", RootDto.class);
xStream.alias("screenshot", ScreenShotDtoAndAnswer.class);
xStream.alias("screenshotAnswer", ScreenshotAnswerDto.class);
}
}
2.對應的xml中的標簽增加對應的實體類
1)root對應的RootDto實體類
package net.tfedu.problem.dto;
import lombok.Data;
import java.util.List;
@Data
public class RootDto {
private List<ScreenShotDtoAndAnswer> screenshotList;
}
2)screenshot對應的實體類(因為他這個是一個集合中又包含集合,ScreenshotDto是他本身的實體,只不過又封裝了一個集合對象在實體里面)
package net.tfedu.problem.dto;
import lombok.Data;
import java.util.List;
@Data
public class ScreenShotDtoAndAnswer extends ScreenshotDto{
private List<ScreenshotAnswerDto> screenshotAnswerList;
}
3)screenshotAnswer對應的實體類
/**
* ScreenshotAnswerDto.java
* net.tfedu.problem.dto
*/
package net.tfedu.problem.dto;
import java.util.Date;
import com.we.core.db.entity.BaseEntity;
import lombok.Data;
import java.io.Serializable;
/**
* 截圖做題答案表Dto
*
* @author houpengwei
* @Date 2019-05-06
*/
@Data
public class ScreenshotAnswerDto extends BaseEntity {
/**
* 匹配id
*/
private long id;
/**
* 截圖做題Id
*/
private long screenshotId;
/**
* 學生用戶id
*/
private long studentId;
/**
* 該題學生回答
*/
private String answer;
/**
* 學生回答是否正確(默認為0 ,1正確2錯誤3半對半錯)
*/
private int state;
/**
* 學生上傳附件路徑及文件名
*/
private String filePath;
/**
* 老師評語
*/
private String remark;
/**
* 提交時間
*/
private Date submitTime;
/**
* 0單選1文本 2數碼筆3圖片
*/
private int answerType;
/**
* 用戶答題用時 默認秒
*/
private int useTime;
/**
* 錯誤類型id
*/
private long errorTypeId;
/**
* 知識點
*/
private String navigationCode;
}
3.獲取上傳的xml
XStream xStream = new XStream(new DomDriver());
OffLineUtil.xStreamUploadAliasEntity(xStream);
RootDto rootDto = (RootDto) xStream.fromXML(problemXml);
4.使用rootDto.get獲取封裝的對象