用JBuilder2005开发spring MVC应用-与表示层技术xslt集成
高科华
作者简介:高科华,南京航空学院计算数学专业硕士,有十年以上的企业信息化工作经验。目前的研究兴趣,J2EE企业应用、ERP软件研发、数据仓库系统研发。
1. 按照“ 用JBuilder2005开发spring MVC应用”一文建立基本的spring应用
2. 增加JDOM、Dom4J类库
3. 源文件如下,详细解释请看spring参考文档
/src/xslt/HomePageController.java |
package xslt; import java.util.*; import javax.servlet.http.*; import org.apache.commons.logging.*; import org.springframework.web.servlet.*; import org.springframework.web.servlet.mvc.*; public class HomePageController extends AbstractController { /** Logger for this class and subclasses */ protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequestInternal( HttpServletRequest req, HttpServletResponse resp) throws Exception { /* public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { */ Map map = new HashMap(); List wordList = new ArrayList(); wordList.add("hello"); wordList.add("world"); map.put("wordList", wordList); return new ModelAndView("home", map); } } |
/src/xslt/HomePage.java |
package xslt;
import java.util.*;
import javax.servlet.http.*;
import org.jdom.Element; import org.jdom.output.*; import org.springframework.web.servlet.view.xslt.*; import org.w3c.dom.*;
// imports omitted for brevity public class HomePage extends AbstractXsltView { protected Node createDomNode( Map model, String rootName, HttpServletRequest req, HttpServletResponse res ) throws Exception { org.jdom.Document doc = new org.jdom.Document(); Element root = new Element(rootName); doc.setRootElement(root); List words = (List) model.get("wordList"); for (Iterator it = words.iterator(); it.hasNext(); ) { String nextWord = (String) it.next(); Element e = new Element("word"); e.setText(nextWord); root.addContent(e); } // convert JDOM doc to a W3C Node and return return new DOMOutputter().output(doc); } } |
/web-inf/classes/views.properties |
home.class=xslt.HomePage home.stylesheetLocation=/WEB-INF/xsl/home.xslt home.root=words |
/web-inf/xsl/home.xslt |
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" omit-xml-declaration="yes"/> <xsl:template match="/"> <html> <head><title>Hello!</title></head> <body> <h1>My First Words</h1> <xsl:for-each select="wordList/word"> <xsl:value-of select="."/><br />
</xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> |
/web-inf/springapp-servlet.xml |
<?xml version="1.0" encoding="UTF-8"?> <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> </beans> |