如何在XML Spring MVC中持久保存对象

时间:2014-07-08 12:45:17

标签: java xml spring spring-mvc jaxb

我想在xml文件中保存Object值,该文件位于我的Spring MVC项目的SRC文件夹中。

我对JAX-B的编组和解组概念有点了解,可以将对象保存到xml文件。

example ,
    Employee emp1=new Employee(1,"Robin",50000);  
    File file =new File("c://myfiles//employee.xml"))  
    marshallerObj.marshal(emp1, new FileOutputStream(file); 

上面的代码将我的emplyee对象保存到位于C / myfiles文件夹中的employee.xml文件。

所以我如何在spring控制器中使用相同的代码 如下,

@RequestMapping(value="/saveNotice",method=RequestMethod.POST)
public void saveNotice(Notice notice){

    Employee emp1=new Employee(1,"Robin",50000);  
    File file =new File("src/employee.xml"))  
    marshallerObj.marshal(emp1, new FileOutputStream(file); 
}

需要帮助........

感谢。

2 个答案:

答案 0 :(得分:0)

伙计。  

1假设   你的src文件夹是c:// workspace // myproject // src //   您的类输出文件夹是c:// workspace // myproject // WEB-ROOT //

2当你的类被tomcat调用时,tomcat会将“src / \ templyee.xml”作为相对路径,并将其转换为“c://workspace//myproject//WEB-ROOT//src//emplyee.xml “终于。 所以,filenotfoundexception将被抛出。

3如果你真的想要读取c:// workspace // myproject // src //中的emplyee.xml // 你可以使用绝对路径:

 文件文件=新文件(“c://workspace//myproject//src//employee.xml”))

或者您可以将employee.xml移动到“c://workspace//myproject//WEB-ROOT//src//emplyee.xml”

答案 1 :(得分:0)

要对一个对象进行编组,然后将其状态保存在类路径中的文件中,您必须执行以下步骤:

  1. 保护您的模型的对象

    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)
    public class Employee {
    
    @XmlAttribute (required = true)
    private String id;
    @XmlAttribute (required = true)
    private String name;
    @XmlAttribute (required = true)
    private String salary;
    
    //Getter and setter method
    
    }
    
  2. 马歇尔你的对象

    JAXBContext context = JAXBContext.newInstance(Employee.class);
    Marshaller m = context.createMarshaller();
    m.marshal(creditCard, new File("/employee.xml"));