<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java瑣事

    -I am not alone
    posts - 54, comments - 30, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    框架使用struts2+spring+hibernate,但這里DWR只是跟spring的整合,和其余兩個框架沒有什么關系。
    目的:打開頁面時自動刷新課程,而當選擇另外的課程時,欄目下拉框會發生相應變化。
    頁面代碼addContent.jsp:
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

    <%@ taglib prefix="s" uri="/struts-tags" %>
    <html>
        
    <head>
            
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
        
            
    <title>FCKeditor</title>
            
            
    <script type="text/javascript" src="/wsjx/dwr/engine.js"></script>
            
    <script type="text/javascript" src="/wsjx/dwr/util.js"></script>
            
    <script type="text/javascript"
                src
    ="/wsjx/dwr/interface/contentDaoAjax.js"></script>

            
    <script type="text/javascript"> <!--
                
                function updateCourse()
                
    {
                    var teacher 
    = "1";
                    
                    contentDaoAjax.getCourses(teacher , createCourses);
                }

                function createCourses(courses)
                
    {
                    var courseObj 
    = document.getElementById('course');
                    DWRUtil.removeAllOptions(courseObj);
                    DWRUtil.addOptions(courseObj,
    {0:"請選擇"});
                    
    if(courses.length == 0)
                    
    {
                        alert(
    "輸入有誤");
                    }

                    
    else
                    
    {
                        DWRUtil.addOptions(courseObj,courses);
                    }

                }

                
                function updateColumn()
                
    {
                    var course 
    = document.getElementById("course").value;
                    contentDaoAjax.getColumns(course , createColumns);
                }

                function createColumns(columns)
                
    {
                    var columnObj 
    = document.getElementById('column');
                    DWRUtil.removeAllOptions(columnObj);
                    
    if(columns.length == 0)
                    
    {
                        alert(
    "輸入有誤");
                    }

                    
    else
                    
    {
                        DWRUtil.addOptions(columnObj,columns);
                    }

                }

        
    //--> </script>
        </head>

        
    <body onload="updateCourse()">
            
    <form>
                
    <table align="center">
                    
    <tr>
                        
    <td><br/>課程: 
                        
    </td>
                        
    <td><br/><select name="course" id="course" onchange="updateColumn()"></select>
                        
    </td>
                    
    </tr>
                    
                    
    <tr>
                        
    <td style="background-color: red" colspan="2"></td>
                    
    </tr>
                    
    <tr>
                        
    <td>欄目: 
                        
    </td>
                        
    <td><select name="mknr.lm.id" id="column"><option value="0" selected>請選擇</option></select>
                        
    </td>
                    
    </tr>
                    
    <tr>
                        
    <td> <s:textfield name="mknr.title" size="100" label="題目" /> </td>
                    
    </tr>
                                    
    <tr>
                        
    <td>
                            
    <input type="submit" value="Submit">
                        
    </td>
                    
    </tr>
                
    </table>

            
    </form>

        
    </body>
    </html>

    上面部分使用了struts2的標簽,<select name="mknr.lm.id">也是為向后面的action傳遞值做準備,這里關于ajax的配置并沒有用到name。
    web.xml加入以下幾句:
    <!-- DWR servlet 配置 -->
        
    <servlet>
            
    <servlet-name>dwr</servlet-name>
            
    <servlet-class>
                org.directwebremoting.servlet.DwrServlet
            
    </servlet-class>
            
    <init-param>
                
    <param-name>debug</param-name>
                
    <param-value>true</param-value>
            
    </init-param>
            
    <load-on-startup>1</load-on-startup>
        
    </servlet>
        
    <servlet-mapping>
            
    <servlet-name>dwr</servlet-name>
            
    <url-pattern>/dwr/*</url-pattern>
        
    </servlet-mapping>
    dwr.xml
    <!DOCTYPE dwr PUBLIC
      "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
      "http://www.getahead.ltd.uk/dwr/dwr10.dtd"
    >
      
      
    <dwr>
          
    <allow>
              
    <create javascript="contentDaoAjax" creator="spring">
                  
    <param name="beanName" value="contentService"></param>
              
    </create>
          
    </allow>
      
    </dwr>
    因為我這里沒用到復雜的對象,而只是用到了簡單的Map(int,String),所以并不需要設置convert。如果是傳輸的是javabean,則需要進行轉換。
    applicationContext.xml添加contentService的bean:
    <bean id="contentService"
            class
    ="cn.edu.ujn.wsjx.managecontent.service.impl.ContentService">
            
            
    <property name="mknrDao">
                
    <ref bean="mknrDao"/>
            
    </property>
            
    <property name="jsjkDao">
                
    <ref bean="jsjkDao"/>
            
    </property>
            
    <property name="lmDao">
                
    <ref bean="lmDao"/>
            
    </property>
            
    <property name="yhDao">
                
    <ref bean="yhDao"/>
            
    </property>
        
    </bean>
    java類中相應的兩個方法
     1public Map getCourses(String teacher)
     2    {
     3        List<Jsjk> jsjks = jsjkDao.findByTeacherId(1);
     4        Map map = new LinkedHashMap();
     5        for (Jsjk jsjk : jsjks)
     6        {
     7            Kc kc = jsjk.getKcId();
     8            System.out.println(kc.getName());
     9            map.put(kc.getId(), kc.getName());
    10        }

    11        return map;
    12    }

    13    
    14    public Map getColumns(int course)
    15    {
    16        
    17        List<Lm> lms = lmDao.findByCourse(course);
    18        Map map = new LinkedHashMap();
    19        for(Lm lm : lms)
    20        {
    21            System.out.println(lm.getName());
    22            map.put(lm.getId(), lm.getName());
    23        }

    24        return map;
    25    }
    這么一系列配置好以后,就能實現無刷新二級級聯了
    主站蜘蛛池模板: 亚洲国产综合AV在线观看| 337p日本欧洲亚洲大胆人人 | 91亚洲精品视频| 日本一区二区三区免费高清| 亚洲AV第一成肉网| 久久噜噜噜久久亚洲va久| 免费被黄网站在观看| 中文字幕视频免费在线观看| 亚洲jjzzjjzz在线观看| 亚洲乱码中文字幕手机在线| 57pao一国产成永久免费| 337P日本欧洲亚洲大胆艺术图| 久久综合图区亚洲综合图区| 成人毛片18女人毛片免费| 精品国产污污免费网站入口在线| 亚洲精品国产电影午夜| 亚洲国产日韩成人综合天堂| 84pao国产成视频免费播放| 国产AV日韩A∨亚洲AV电影| 久久亚洲AV成人无码国产 | 亚洲午夜视频在线观看| 国产一级淫片免费播放| 1000部禁片黄的免费看| 成年女人A毛片免费视频| 亚洲精华国产精华精华液 | 视频免费1区二区三区| 亚洲乱码一二三四区乱码| 久久精品国产精品亚洲精品| 国产精品免费视频一区| 国产乱码免费卡1卡二卡3卡| 免费的全黄一级录像带| 一级成人生活片免费看| 亚洲综合无码无在线观看| 亚洲综合视频在线| 在线亚洲人成电影网站色www| 国产精品色午夜视频免费看| 99久久99久久精品免费看蜜桃| 免费a级毛片无码a∨免费软件 | 国产美女无遮挡免费视频| 99无码人妻一区二区三区免费| 久久成人免费播放网站|