服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

在spring mvc框架中显示xml视图


  举一个很简单的例子,用户在登陆窗口中输入用户名和密码,提交以后以xml的方式显示你填写的内容,
  
  具体步骤如下:
  
  1.配置web.xml文件
  <servlet>
  <servlet-name>login</servlet-name>
  <servlet-class>
  org.springframework.web.servlet.dispatcherservlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  <servlet-name>login</servlet-name>
  <url-pattern>*.htm</url-pattern>
  </servlet-mapping>
  
  2.配置login.xml文件
  <bean id="viewresolver"
  
  class="org.springframework.web.servlet.view.resourcebundleviewresolver">
  <property name="basename">
  <value>views</value>
  </property>
  </bean>
  
  <!--request mapping -->
  <bean id="urlmapping"
  class="org.springframework.web.servlet.handler.simpleurlhandlermapping">
  <property name="mappings">
  <props>
  <prop key="/login.htm">loginaction</prop>
  
  </props>
  </property>
  </bean>
  
  <!---action definition-->
  <bean id="loginaction"
  class="loginaction">
  <property name="commandclass">
  <value>logininfo</value>
  </property>
  <property name="fail_view">
  <value>loginfail</value>
  </property>
  <property name="success_view">
  <value>main</value>
  </property>
  </bean>
  
  3.定义控制类loginaction.java和commandclass-->logininfo.java
  <---------------------loginaction---------------------------->
  public class loginaction extends simpleformcontroller {
  
  
  protected modelandview onsubmit(object cmd, bindexception ex)
  throws exception {
  logininfo logininfo = (logininfo) cmd;
  
  map model = new hashmap();
  list list = new arraylist();
  list.add(logininfo);
  model.put("logininfos", list);
  
  return new modelandview("login", model);
  
  }
  <---------------------loginaction---------------------------->
  <---------------------logininfo---------------------------->
  public class logininfo {
  private string username;
  private string password;
  
  public string getpassword() {
  return password;
  }
  
  public void setpassword(string password) {
  this.password = password;
  }
  
  public string getusername() {
  return username;
  }
  
  public void setusername(string username) {
  this.username = username;
  }
  }
  <---------------------logininfo---------------------------->
  
  4.定义自己的viewresolver--->loginview
  <---------------------loginview---------------------------->
  public class loginview extends abstractxsltview {
  protected node createdomnode(map model, string rootname,
  httpservletrequest request, httpservletresponse response)
  throws exception {
  
  document doc = documenthelper.createdocument();
  element root = doc.addelement(rootname);
  doc.setrootelement(root);
  list logininfos = (list) model.get("logininfos");
  for (iterator it = logininfos.iterator(); it.hasnext();) {
  logininfo info = (logininfo) it.next();
  element a = root.addelement("logininfo");
  a.addelement("username").addtext(info.getusername());
  a.addelement("password").addtext(info.getpassword());
  
  }
  response.setcontenttype("text/xml");
  return new domwriter().write(doc);
  }
  
  }
  <---------------------loginview---------------------------->
  
  5.定义views.properties文件
  login.class=loginview
  
  login.stylesheetlocation=/web-inf/xsl/logininfo.xsl
  
  login.root=logininfos
  
  6.定义logininfo.xsl文件
  <?xml version="1.0" encoding="gbk"?>
  <xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0">
  <xsl:output method="xml" omit-xml-declaration="no"/>
  <xsl:template match="/">
  <logininfos>
  <xsl:for-each select="logininfos/logininfo">
  <logininfo>
  <username>
  <xsl:value-of select="username"/>
  </username>
  <password>
  <xsl:value-of select="password"/>
  </password>
  </logininfo>
  </xsl:for-each>
  </logininfos>
  </xsl:template>
  </xsl:stylesheet>
  
  7.定义index.html文件
  <html>
  <body>
  <form method="post" action="login.htm">
  <p align="left">登录</p>
  <br>
  用户名:
  <input type="text" name="username" >
  <br>
  密 码 :
  <input type="password" name="password" >
  <br>
  <p>
  <input type="submit" value="提交" name="b1">
  <input type="reset" value="重置" name="b2">
  </p>
  </form>
  </body>
  </html>
  
  8.运行tomcat 预览:http://localhost:8080/xml/index.html
  
  注:
  
  views.properties放在classes文件夹。logininfo.xsl放在/web-inf/xsl/文件夹。
  
  index.html放在根目录下,xml文件放在/web-inf/下,其他的.class文件放在/web-inf/classes/下
  
  需要的dom4j-1.6.jar、spring.jar放到/web-inf/lib下。
  
  做完这一切,你就可以在浏览器里面测试结果了~!~

扫描关注微信公众号