我想在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);
}
需要帮助........
感谢。
答案 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)
要对一个对象进行编组,然后将其状态保存在类路径中的文件中,您必须执行以下步骤:
保护您的模型的对象
@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
}
马歇尔你的对象
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller m = context.createMarshaller();
m.marshal(creditCard, new File("/employee.xml"));