From: Mathieu Baudier Date: Mon, 5 May 2008 15:05:04 +0000 (+0000) Subject: Introduce XSLT view X-Git-Tag: argeo-slc-2.1.7~2912 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=fc9a16d70ff54e06581e19be7073e24ec4561fbb;p=gpl%2Fargeo-slc.git Introduce XSLT view git-svn-id: https://svn.argeo.org/slc/trunk@1128 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerView.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerView.java new file mode 100644 index 000000000..ce14848d0 --- /dev/null +++ b/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerView.java @@ -0,0 +1,40 @@ +package org.argeo.slc.web.mvc; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.oxm.Marshaller; +import org.springframework.web.servlet.view.xslt.XsltView; +import org.w3c.dom.Document; + +import org.argeo.slc.core.test.tree.TreeTestResult; + +public class XsltMarshallerView extends XsltView { + + private Marshaller marshaller; + + + + @Override + protected Class[] getSourceTypes() { + return new Class[]{TreeTestResult.class}; + } + + @Override + protected Source convertSource(Object source) throws Exception { + Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + DOMResult result = new DOMResult(document); + marshaller.marshal(source, result); + return new DOMSource(result.getNode()); + } + + + + public void setMarshaller(Marshaller marshaller) { + this.marshaller = marshaller; + } + + +} diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerViewResolver.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerViewResolver.java new file mode 100644 index 000000000..831a517ab --- /dev/null +++ b/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/XsltMarshallerViewResolver.java @@ -0,0 +1,24 @@ +package org.argeo.slc.web.mvc; + +import org.springframework.oxm.Marshaller; +import org.springframework.web.servlet.view.AbstractUrlBasedView; +import org.springframework.web.servlet.view.xslt.XsltViewResolver; + +public class XsltMarshallerViewResolver extends XsltViewResolver { + + private Marshaller marshaller; + + @Override + protected AbstractUrlBasedView buildView(String viewName) throws Exception { + AbstractUrlBasedView viewT = super.buildView(viewName); + XsltMarshallerView view = (XsltMarshallerView) viewT; + view.setMarshaller(marshaller); + return view; + } + + public void setMarshaller(Marshaller marshaller) { + this.marshaller = marshaller; + } + + +}