举一个很简单的例子,用户在登陆窗口中输入用户名和密码,提交以后以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下。
做完这一切,你就可以在浏览器里面测试结果了~!~
闽公网安备 35060202000074号