posts - 0, comments - 0, trackbacks - 0, articles - 1

几个spring+ajax实现的小功能

Posted on 2008-04-09 12:54 lcc 阅读(1256) 评论(0)  编辑  收藏
几个spring+ajax实现的小功能
代码片段:
web.xml

  1<?xml version="1.0" encoding="UTF-8"?>
  2<web-app id="WebApp_ID" version="2.4"
  3         xmlns="http://java.sun.com/xml/ns/j2ee"
  4         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  6
  7    <!--设置环境变量,将应用程序目录存储到环境变量中-->
  8    <context-param>
  9        <param-name>webAppRootKey</param-name>
 10        <param-value>webapp.root</param-value>
 11    </context-param>
 12
 13    <!--设置环境变量指定log4j的配置文件-->
 14    <context-param>
 15        <param-name>log4jConfigLocation</param-name>
 16        <param-value>/WEB-INF/log4j.properties</param-value>
 17    </context-param>
 18
 19    <!--设置环境变量指定applicationContext.xml配置文件-->
 20    <context-param>
 21        <param-name>contextConfigLocation</param-name>
 22        <param-value>
 23            /WEB-INF/applicationContext.xml
 24        </param-value>
 25    </context-param>
 26
 27    <!--设置log4j的监听,使日志组件能够使用,调用log4jConfigLocation中设置的环境变量-->
 28    <listener>
 29        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 30    </listener>
 31
 32    <!--设置context的监听,启动时加载applicationContext.xml文件,初始化applicationContext实例-->
 33    <listener>
 34        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 35    </listener>
 36
 37    <!--文件上传时临时文件清除监听-->
 38    <listener>
 39        <listener-class>org.apache.commons.fileupload.servlet.FileCleanerCleanup</listener-class>
 40    </listener>
 41
 42    <!--设置字符串过滤器,解决表单Post提交中的乱码问题-->
 43    <filter>
 44        <filter-name>characterEncoding</filter-name>
 45        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 46        <init-param>
 47            <param-name>encoding</param-name>
 48            <param-value>utf-8</param-value>
 49        </init-param>
 50        <init-param>
 51            <param-name>forceEncoding</param-name>
 52            <param-value>true</param-value>
 53        </init-param>
 54    </filter>
 55    <filter-mapping>
 56        <filter-name>characterEncoding</filter-name>
 57        <url-pattern>/*</url-pattern>
 58    </filter-mapping>
 59
 60    <!--设置jsp,htm,html页面的字符集,是否使用标签,是否使用jsp脚本等,头尾载入页面等-->
 61    <jsp-config>
 62        <jsp-property-group>
 63            <description>指定JSP文件的配置属性</description>
 64            <display-name>jspConfiguration</display-name>
 65            <url-pattern>*.jsp</url-pattern>
 66            <el-ignored>false</el-ignored>
 67            <page-encoding>utf-8</page-encoding>
 68            <scripting-invalid>false</scripting-invalid>
 69        </jsp-property-group>
 70
 71        <jsp-property-group>
 72            <description>指定htm文件的配置属性</description>
 73            <display-name>jspConfiguration</display-name>
 74            <url-pattern>*.htm</url-pattern>
 75            <el-ignored>false</el-ignored>
 76            <page-encoding>utf-8</page-encoding>
 77            <scripting-invalid>false</scripting-invalid>
 78        </jsp-property-group>
 79
 80        <jsp-property-group>
 81            <description>指定html文件的配置属性</description>
 82            <display-name>jspConfiguration</display-name>
 83            <url-pattern>*.html</url-pattern>
 84            <el-ignored>false</el-ignored>
 85            <page-encoding>utf-8</page-encoding>
 86            <scripting-invalid>false</scripting-invalid>
 87        </jsp-property-group>
 88
 89    </jsp-config>
 90    <!--===============================================================-->
 91    <servlet>
 92        <servlet-name>ajax</servlet-name>
 93        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 94        <init-param>
 95            <param-name>contextConfigLocation</param-name>
 96            <param-value>/WEB-INF/servlet-ajax.xml</param-value>
 97        </init-param>
 98    </servlet>
 99    <servlet-mapping>
100        <servlet-name>ajax</servlet-name>
101        <url-pattern>*.ajax</url-pattern>
102    </servlet-mapping>
103
104    <servlet>
105        <servlet-name>dwr-invoker</servlet-name>
106        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
107        <init-param>
108            <param-name>debug</param-name>
109            <param-value>true</param-value>
110        </init-param>
111    </servlet>
112    <servlet-mapping>
113        <servlet-name>dwr-invoker</servlet-name>
114        <url-pattern>/dwr/*</url-pattern>
115    </servlet-mapping>
116
117    <!--会话的时间-->
118    <session-config>
119        <session-timeout>30</session-timeout>
120    </session-config>
121
122    <!-- 欢迎页面 -->
123    <welcome-file-list>
124        <welcome-file>index.jsp</welcome-file>
125    </welcome-file-list>
126
127</web-app>
128

applicationContext.xml
 1<?xml version="1.0" encoding="UTF-8"?>
 2<beans xmlns="http://www.springframework.org/schema/beans"
 3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4       xmlns:aop="http://www.springframework.org/schema/aop"
 5       xmlns:tx="http://www.springframework.org/schema/tx"
 6       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
 7           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
 8           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
 9
10    <!--返回的视图资源的前缀和后缀,基于Jstl模板-->
11    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
12        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
13        <property name="prefix" value="/WEB-INF/jsp/"/>
14    </bean>
15
16    <!--启动加载异常处理的类,用于监听各模块中触发的异常-->
17    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
18        <property name="defaultErrorView" value="error.jsp"/>
19    </bean>
20
21    <!--加载properties配置文件-->
22    <!--<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">-->
23        <!--<property name="locations">-->
24            <!--<list>-->
25                <!--<value>WEB-INF/jdbc.properties</value>-->
26            <!--</list>-->
27        <!--</property>-->
28    <!--</bean>-->
29
30    <!--数据源-->
31    <!--<bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" destroy-method="close">-->
32        <!--<property name="driverClassName" value="${jdbc.driverClassName}"/>-->
33        <!--<property name="url" value="${jdbc.url}"/>-->
34        <!--<property name="username" value="${jdbc.username}"/>-->
35        <!--<property name="password" value="${jdbc.password}"/>-->
36    <!--</bean>-->
37
38    <!--事务管理器-->
39    <!--<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">-->
40        <!--<property name="dataSource" ref="dataSource"/>-->
41    <!--</bean>-->
42
43    <!--aop代理,对所有以Logic为后缀文件名的接口类进行代理-->
44    <!--<aop:config>-->
45        <!--<aop:advisor pointcut="execution(* *..*Logic.*(..))" advice-ref="txAdvice"/>-->
46    <!--</aop:config>-->
47
48    <!--数据库事务代理,对类中的指定前缀的方法进行事务控制-->
49    <!--<tx:advice id="txAdvice" transaction-manager="txManager">-->
50        <!--<tx:attributes>-->
51            <!--<tx:method name="insert*"/>-->
52            <!--<tx:method name="update*"/>-->
53            <!--<tx:method name="delete*"/>-->
54            <!--<tx:method name="upload*"/>-->
55            <!--<tx:method name="*" read-only="true"/>-->
56        <!--</tx:attributes>-->
57    <!--</tx:advice>-->
58
59    <bean id="ajaxLogic" class="cn.idtag.logic.AjaxLogicImpl"/>
60</beans>
61

servlet-ajax.xml
 1<?xml version="1.0" encoding="UTF-8"?>
 2<beans xmlns="http://www.springframework.org/schema/beans"
 3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 5
 6    <import resource="applicationContext.xml"/>
 7
 8    <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 9
10    <bean name="/index.ajax" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
11        <property name="viewName" value="index.jsp"/>
12    </bean>
13
14    <!--无拦截请求-->
15    <bean id="noInterceptors" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
16        <property name="mappings">
17            <props>
18                <prop key="adminLogin.ajax">ajaxController</prop>
19                <prop key="checkPhone.ajax">ajaxController</prop>
20                <prop key="dataList.ajax">ajaxController</prop>
21                <prop key="selectList.ajax">ajaxController</prop>
22                <prop key="rssAddress.ajax">ajaxController</prop>
23
24            </props>
25        </property>
26    </bean>
27
28    <!--请求与方法映射控制器-->
29    <bean id="ajaxController" class="cn.idtag.core.LogicController">
30        <property name="logicClass" ref="ajaxLogic"/>
31        <property name="uriMethodMapping">
32            <props>
33                <prop key="adminLogin">initLogin</prop>
34                <prop key="checkPhone">checkPhone</prop>
35                <prop key="dataList">dataList</prop>
36                <prop key="selectList">selectList</prop>
37                <prop key="rssAddress">rssAddress</prop>
38            </props>
39        </property>
40    </bean>
41
42</beans>
43

index.jsp
  1<script src="js/common/window.js"></script>
  2<script src="js/common/prototype.js"></script>
  3<script src="js/common/ajaxExpand.js"></script>
  4<html>
  5<title> Ajax </title>
  6<script type="text/javascript"> 
  7    function checkPhonePost(){
  8        new Ajax.Request('checkPhone.ajax',
  9            {method:'post',parameters:$('phoneForm').serialize(),onCreate:AjaxExpand.createProgress('p1'),onComplete:function(transport){
 10                //alert("载入中");
 11                AjaxExpand.destroyProgress('p1');
 12                if(transport.status==200){
 13                    var result = transport.responseText;
 14                    if(result=='1') $('p1').innerHTML = "<img src='images/icon1.gif'/><font style='vertical-align:4px;font-size:12;color:gray;'>手机号不能为空!</font>";
 15                    if(result=='2') $('p1').innerHTML = "<img src='images/icon2.gif'/><font style='vertical-align:4px;font-size:12;color:gray;'>手机号已被使用!</font>";
 16                    if(result=='3') $('p1').innerHTML = "<img src='images/icon3.gif'/><font style='vertical-align:4px;font-size:12;color:gray;'>手机号正确!</font>";
 17                }
else{
 18                    alert('系统忙!');
 19                }

 20            }
}
);
 21    }

 22    function checkPhoneGet(){
 23        new Ajax.Request('checkPhone.ajax?phone='+$F('phone'), {method:'get',onComplete:function(transport){
 24            var result = transport.responseText;
 25            alert(result);
 26        }
}
);
 27    }

 28
</script>
 29<script type="text/javascript">
 30    function dateListPost(){
 31        $('dateListDiv').innerHTML = '';
 32        new Ajax.Request('dataList.ajax', {method:'post',parameters:$('dateList').serialize(),onCreate:function(transport){AjaxExpand.createProgress('p2');Form.disable('dateList')},onComplete:function(transport){
 33            AjaxExpand.destroyProgress('p2');
 34            if(transport.status==200){
 35                var result = transport.responseText; 
 36                $('dateListDiv').innerHTML = result;
 37            }
else{
 38                alert('系统忙!')
 39            }

 40            Form.enable('dateList');            
 41        }
}
);
 42    }

 43
</script>
 44<script type="text/javascript">
 45    function selectListPost(){
 46        new Ajax.Request('selectList.ajax', {method:'post',parameters:$('selectList').serialize(),onComplete:function(transport){
 47            if(transport.status==200){
 48                var result = transport.responseText;
 49                this.selectList = eval("(" + result + ")");
 50                removeOption('select2');        
 51                for(var i=0;i<this.selectList.length;i++){
 52                    var temp = this.selectList[i];
 53                    var oOption = document.createElement("OPTION");
 54                    $('select2').options.add(oOption);
 55                    oOption.text = temp.nicheng;
 56                    oOption.value=temp.idtagcode;
 57                }

 58            }
else{
 59                alert('系统忙!')
 60            }

 61        }
}
);
 62    }

 63    function removeOption(id){
 64      var select=$(id);
 65      var options = select.options;
 66      var count = options.length;
 67      for(var i=1;i<count;i++){
 68        select.remove(1);
 69      }

 70      select.options[0].selected=true;
 71    }

 72
</script>
 73<script type="text/javascript">
 74    function lockPost(){
 75        new Ajax.Request('dataList.ajax', {method:'post',onCreate:function(transport){AjaxExpand.addLightboxMarkup('500','200')},onComplete:function(transport){
 76            if(transport.status==200){
 77                var result = transport.responseText;
 78                $('lightbox').innerHTML = result;
 79            }
else{
 80                alert('系统忙!');
 81                AjaxExpand.removeLightboxMarkup();
 82            }

 83        }
}
);
 84    }

 85
</script>
 86<script>
 87    function rss(){
 88        new Ajax.Request('rssAddress.ajax?rssAddress='+$F('rssAddress'), {method:'get',onComplete:function(transport){
 89            if(transport.status==200){
 90                $('rssDiv').innerHTML = "";
 91                var xml = transport.responseXML; 
 92                var rss = xml.getElementsByTagName("rss")[0];
 93                var channel = rss.getElementsByTagName("channel")[0];
 94                var items = rss.getElementsByTagName("item");
 95                for(var i=0; i<items.length; i++){
 96                    var title = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
 97                    var link = items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
 98                    $('rssDiv').innerHTML += "<a style='font-size:12px' href="+link+" target='_blank'>"+""+(i+1)+"篇  "+title+"</a><br>";
 99                }

100            }
else{
101                alert('系统忙!');
102            }
                
103        }
}
);
104    }

105
</script>
106
107<body>
108<div id="divDrag_module_1">
109<fieldset style="width:500">
110    <legend class="divDrag_module">手机号输入重复校验</legend>
111    <form id="phoneForm" name="phoneForm">
112    请输入手机号码:<input id="phone" name="phone" type="text" value="13311112222" onblur="checkPhonePost();"/>
113    <input type="button" value="开始校验" onclick="checkPhonePost();"><span id="p1"></span>
114    </form>        
115</fieldset>
116<br><br>
117</div>
118
119<div id="divDrag_module_2">
120<fieldset style="width:500px">
121    <legend style="color:red" class="divDrag_module">数据列表</legend>
122    <br>
123    <form id="dateList">
124        请输入身份通号:<input id="idtagcode" name="idtagcode" type="text" size="10"/>----
125        请输入昵称:<input id="nicheng" name="nicheng" type="text" size="10"/>
126        <input id="buttonName" type="button" value="查询" onclick="dateListPost();">
127    </form>
128    <span id="p2"></span>
129    <div id="dateListDiv"></div>
130</fieldset>
131<br><br>
132</div>
133
134<div id="divDrag_module_3">
135<fieldset style="width:500px">
136    <legend style="color:red" class="divDrag_module">联动菜单</legend>
137    <br>
138    <form id="selectList">
139        <select id="select1" name="select1" onchange="selectListPost()">
140            <option>--请选择--</option>            
141            <option value="1">第一个</option>
142            <option value="2">第二个</option>
143            <option value="3">第三个</option>
144        </select>
145        <select id="select2" name="select2">
146            <option>--请选择--</option>
147        </select>
148    </form>
149</fieldset>
150<br><br>
151</div>
152
153<div id="divDrag_module_4">
154<fieldset style="width:500px">
155    <legend style="color:red"  class="divDrag_module">屏幕锁定</legend>
156    <br>
157    <input id="buttonLock" type="button" value="锁定" onclick="lockPost()">
158</fieldset>
159<br><br>
160</div>
161
162<div id="divDrag_module_5">
163<fieldset style="width:320px">
164    <legend style="color:red"  class="divDrag_module">组件控制</legend>
165    <br>
166    手机号输入重复校验  【<href="###" onclick="dragHandlers.showDragModule('divDrag_module_1')">显示</a> <href="###"  onclick="dragHandlers.hiddenDragModule('divDrag_module_1')">隐藏</a> <href="###"  onclick="dragHandlers.cloneDragModule('divDrag_module_1')">克隆</a><br><br>
167    数据列表  【<href="###" onclick="dragHandlers.showDragModule('divDrag_module_2')">显示</a> <href="###" onclick="dragHandlers.hiddenDragModule('divDrag_module_2')">隐藏</a><br><br>
168    联动菜单  【<href="###" onclick="dragHandlers.showDragModule('divDrag_module_3')">显示</a> <href="###" onclick="dragHandlers.hiddenDragModule('divDrag_module_3')">隐藏</a><br><br>
169    屏幕锁定  【<href="###" onclick="dragHandlers.showDragModule('divDrag_module_4')">显示</a> <href="###" onclick="dragHandlers.hiddenDragModule('divDrag_module_4')">隐藏</a>
170</fieldset>
171<br><br>
172</div>
173<br><br>
174
175<div id="divDrag_module_6">
176<fieldset style="width:500px">
177    <legend style="color:red"  class="divDrag_module">RSS</legend>
178    <br>
179        <input id="rssAddress" name="rssAddress" type="text" size="20" value="http://blog.sina.com.cn/rss/xujinglei.xml"/>
180        <input  type="button" value="解析RSS" onclick="rss();">
181        <div id="rssDiv"></div>
182</fieldset>
183<br><br>
184</div>
185
186</body>
187</html>

error.jsp
 1<%@include file="/WEB-INF/jsp/inc/tld.jsp"%>
 2<html>
 3<head>
 4</head>
 5<body>
 6<font style="font-size:20;font-weight:bold;">系统出现异常</font>
 7<br>
 8<font style="font-size:16;font-weight:bold;" color="red">exception.class:</font>
 9<font style="font-size:16" color="red"><c:out value="${exception.class}"/></font>
10<br>
11<font style="font-size:16;font-weight:bold;" color="red">exception.message:</font>
12<font style="font-size:16" color="red"><c:out value="${exception.message}"/></font>
13</body>
14</html>

dataList.jsp
 1<%@ include file="/WEB-INF/jsp/inc/tld.jsp" %>
 2<c:if test="${fn:length(dataList)!=0}">    
 3<table width="400" border="1" cellpadding="0" cellspacing="1" bordercolor="#333333">
 4  <tr bgcolor="#666666">
 5    <td width="185" height="25" align="center">编号</td>
 6    <td width="209" align="center">昵称</td>
 7  </tr>
 8  <c:forEach var="data" items="${dataList}" varStatus="status">  
 9  <tr>
10    <td><c:out value="${data.idtagcode}"/>&nbsp;</td>
11    <td><c:out value="${data.nicheng}"/>&nbsp;</td>
12  </tr>
13</c:forEach>  
14</table>
15</c:if>
16<div align=center><input type=button value=解锁 onclick=AjaxExpand.removeLightboxMarkup()></div>


只有注册用户登录后才能发表评论。


网站导航: