java上传xml文件


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获取封装的对象

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM