xslt 通过springmvc、js转换的方式

--》待翻译的xml文件内容
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<citizens>
	<citizen>
		<ssn>Z345T</ssn>
		<firstname>Cheryl</firstname>
		<lastname>Johnson</lastname>
		<role>Manager</role>
		<salary>12000</salary>
	</citizen>
	<citizen>
		<ssn>Z446T</ssn>
		<firstname>John</firstname>
		<lastname>Smith</lastname>
		<role>Employee</role>
		<salary>1000</salary>
	</citizen>
	<citizen>
		<ssn>Z335T</ssn>
		<firstname>Justin</firstname>
		<lastname>Claire</lastname>
		<role>Senior Manager</role>
		<salary>14000</salary>
	</citizen>
	<citizen>
		<ssn>Z389T</ssn>
		<firstname>Clark</firstname>
		<lastname>Rick</lastname>
		<role>Employee</role>
		<salary>2000</salary>
	</citizen>
</citizens>

--》xslt文件内容
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	version="1.0">
	<xsl:output method="html" indent="yes" />
	<xsl:template match="/">
		<html>
			<body>
				<div align="center">
					<xsl:apply-templates />
				</div>
			</body>
		</html>
	</xsl:template>
	<xsl:template match="citizens">
		<table border="1" width="100%">
			<xsl:for-each select="citizen">
				<tr>
					<td>
						<xsl:value-of select="ssn" />
					</td>
					<td>
						<xsl:value-of select="firstname" />
					</td>
					<td>
						<xsl:value-of select="lastname" />
					</td>
					<td>
						<xsl:value-of select="role" />
					</td>
					<td>
						<xsl:value-of select="salary" />
					</td>
				</tr>
			</xsl:for-each>
		</table>
	</xsl:template>
</xsl:stylesheet>

--》springmvc controller代码
package net.codejava.spring.controller;

//参考http://www.codejava.net/frameworks/spring/spring-mvc-xstlview-and-xsltviewresolver-example
import java.io.File;
import java.io.IOException;
import java.io.StringReader;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HomeController {
	@RequestMapping(value = "/")
	public ModelAndView goHome(HttpServletResponse response) throws IOException {
		return new ModelAndView("home");
	}

	@RequestMapping(value = "/viewXSLT")
	public ModelAndView viewXSLT(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
/*		//从xml文件翻译
		String xmlFile = "resources/citizens.xml";
		String contextPath = request.getSession().getServletContext().getRealPath("");
		String xmlFilePath = contextPath + File.separator + "WEB-INF" + File.separator + xmlFile;
		Source source = new StreamSource(new File(xmlFilePath));*/
		//从xml字符串翻译
		String xmlStr = "<?xml version='1.0' encoding='UTF-8' standalone='no'?><citizens>	<citizen>		<ssn>Z345T</ssn>		<firstname>Cheryl</firstname>		<lastname>Johnson</lastname>		<role>Manager</role>		<salary>12000</salary>	</citizen>	<citizen>		<ssn>Z446T</ssn>		<firstname>John</firstname>		<lastname>Smith</lastname>		<role>Employee</role>		<salary>1000</salary>	</citizen>	<citizen>		<ssn>Z335T</ssn>		<firstname>Justin</firstname>		<lastname>Claire</lastname>		<role>Senior Manager</role>		<salary>14000</salary>	</citizen>	<citizen>		<ssn>Z389T</ssn>		<firstname>Clark</firstname>		<lastname>Rick</lastname>		<role>Employee</role>		<salary>2000</salary>	</citizen></citizens>";
		Source source = new StreamSource(new StringReader(xmlStr));
		// adds the XML source file to the model so the XsltView can detect
		ModelAndView model = new ModelAndView("XSLTView");
		model.addObject("xmlSource", source);
		return model;
	}
}

--》spring mvc配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    ">
	<!-- 默认扫描的包路径 -->
	<context:component-scan base-package="net.codejava.spring" />
	<!-- 添加注解驱动 -->
	<mvc:annotation-driven />
	<!-- 定义跳转的文件的前后缀 -->
	<bean id="XSLTViewResolver"
		class="org.springframework.web.servlet.view.xslt.XsltViewResolver">
		<property name="order" value="1" />
		<property name="sourceKey" value="xmlSource" />
		<property name="viewClass"
			value="org.springframework.web.servlet.view.xslt.XsltView" />
		<property name="viewNames">
			<array>
				<value>XSLTView</value>
			</array>
		</property>
		<property name="prefix" value="/WEB-INF/xsl/" />
		<property name="suffix" value=".xsl" />
	</bean>
	<bean id="JSPViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="order" value="2" />
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

--》xslt配置文件
XSLTView.(class)=org.springframework.web.servlet.view.xslt.XsltView
XSLTView.sourceKey=xmlSource 
XSLTView.url=/WEB-INF/xsl/XSLTView.xsl


--->xslt_client2.jsp xslt_client.jsp 为客户端转换处理方法

---》参考
http://www.codejava.net/frameworks/spring/spring-mvc-xstlview-and-xsltviewresolver-example
http://tech.it168.com/KnowledgeBase/Articles/8/6/a/86a8266e3eeb9654020fbd3d03545c78.htm

你可能感兴趣的:(spring,mvc,XSL)