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

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

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

    asdtiang的博客 感謝blogjava提供的博客交流平臺

    struts2.1.8 +spring +hibernate整合及DWR異步提交

    Posted on 2010-04-12 13:07 asdtiang 閱讀(1128) 評論(0)  編輯  收藏 所屬分類: java ee
    配置文件圖:至于包導入的問題網上搜下:

    web.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

        
    <display-name>Struts Blank</display-name>
        
    <servlet>
            
    <servlet-name>dwr</servlet-name>
            
    <!-- 指定Servlet的實現類 -->
            
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
            
    <!-- 指定處于開發階段 -->
            
    <init-param>
                
    <param-name>debug</param-name>
                
    <param-value>true</param-value>
            
    </init-param>
        
    </servlet>
        
    <!-- 指定DWR的核心Servlet攔截的URL -->
        
    <servlet-mapping>
            
    <servlet-name>dwr</servlet-name>
            
    <url-pattern>/dwr/*</url-pattern>
        
    </servlet-mapping>


        
    <!-- 驗證碼 -->
        
    <servlet>
            
    <servlet-name>imagecodeservlet</servlet-name>
            
    <servlet-class>cn.com.enorth.util.imgcode.ImageCodeServlet</servlet-class>
            
    <init-param>
                
    <param-name>type</param-name>
                
    <param-value>1</param-value>
            
    </init-param>
            
    <init-param>
                
    <param-name>length</param-name>
                
    <param-value>4</param-value>
            
    </init-param>
        
    </servlet>
        
    <servlet-mapping>
            
    <servlet-name>imagecodeservlet</servlet-name>
            
    <url-pattern>/imgcode</url-pattern>
        
    </servlet-mapping>

        
    <filter>
            
    <filter-name>struts2</filter-name>
            
    <filter-class>
                org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
        
    </filter>

        
    <filter-mapping>
            
    <filter-name>struts2</filter-name>
            
    <url-pattern>/*</url-pattern>
        
    </filter-mapping>
        
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>/WEB-INF/applicationContext.xml</param-value>
        
    </context-param>
        
    <listener>
            
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        
    </listener>
        
    <context-param>
            
    <param-name>webAppRootKey</param-name>
            
    <param-value>trip.root</param-value>
        
    </context-param>

        
    <context-param>
            
    <param-name>log4jConfigLocation</param-name>
            
    <param-value>/WEB-INF/classes/log4j.properties</param-value>
        
    </context-param>
        
    <listener>
            
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        
    </listener>
        
    <welcome-file-list>
            
    <welcome-file>index.jsp</welcome-file>
        
    </welcome-file-list>

    </web-app>
    log4j.properties
    log4j.rootLogger=INFO, stdout, logfile
    log4j.logger.com.albertsong
    =DEBUG

    log4j.appender.stdout
    =org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout
    =org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern
    =%%p [%c] - %m%n

    log4j.appender.logfile
    =org.apache.log4j.RollingFileAppender
    log4j.appender.logfile.File
    =${trip.root}/WEB-INF/log/trip.log
    log4j.appender.logfile.MaxFileSize
    =512KB
    # Keep three backup files.
    log4j.appender.logfile.MaxBackupIndex
    =3
    # Pattern to output: date priority [category] 
    - message
    log4j.appender.logfile.layout
    =org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern
    =%%p [%c] - %m%n

    **為自己的包名
    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">


        
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
            destroy-method
    ="close">
            
    <property name="driverClass" value="com.mysql.jdbc.Driver" />
            
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/trip" />
            
    <property name="user" value="root" />
            
    <property name="password" value="asdtiang" />
        
    </bean>
        
    <bean id="sessionFactory"
            class
    ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            
    <property name="dataSource" ref="dataSource" />
              
            
    <property name="mappingResources">
                
    <list>
    <!-- **改為自己的路徑-->
                    
    <value>**/User.hbm.xml
                    
    </value>
                    
    <value>**/mysql.hbm.xml
                    
    </value>            
                
    </list>
            
    </property>
            
            
    <property name="hibernateProperties">
                
    <props>
                    
    <prop key="hibernate.dialect">
                        org.hibernate.dialect.MySQLDialect
                    
    </prop>
                    
    <prop key="show_sql">true</prop>
                
    </props>
            
    </property>
        
    </bean>
        
    <bean id="userServer" class="**.UserServer">
            
    <property name="sessionFactory" ref="sessionFactory" />
        
    </bean>
        
    <bean name="registerAction" class="**.RegisterAction">
            
    <property name="userServer" ref="userServer" >
            
    </property>
        
    </bean>
        
    </beans>
    dwr.xml
    <?xml version="1.0" encoding="UTF-8"?>

    <!-- START SNIPPET: dwr -->
    <!DOCTYPE dwr PUBLIC 
        "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" 
        "http://www.getahead.ltd.uk/dwr/dwr10.dtd"
    >

    <dwr>
        
    <allow>
            
    <create creator="new" javascript="validator">
                
    <param name="class" value="org.apache.struts2.validators.DWRValidator"/>
            
    </create>
            
    <convert converter="bean" match="com.opensymphony.xwork2.ValidationAwareSupport"/>
        
    </allow>

        
    <signatures>
            
    <![CDATA[
            import java.util.Map;
            import org.apache.struts2.validators.DWRValidator;

            DWRValidator.doPost(String, String, Map<String, String>);
            
    ]]>
        
    </signatures>
    </dwr>
    <!-- END SNIPPET: dwr -->

    struts2 action

    <action name="checkUser" class="***.RegisterAction" method="checkUserExecute">
                <result name="check" type="stream">
                <param name="contentType">image/jpeg</param>
                    <param name="inputName">inputStream</param>
                </result>
    </action>

    public class RegisterAction extends ActionSupport {
        
    private Log log = LogFactory.getLog(RegisterAction.class);
        
    private InputStream inputStream;
        
    private UserServerInter userServer;
        
    private UserDAO dao = new UserDAO();
        
    private String userName;

        
    public String checkUserExecute() throws Exception {
            
    try {
                log.info(userName);
                
    if (userServer.exist(userName)) {
                    
    this.setInputStream(new FileInputStream(new File(
                            ServletActionContext.getServletContext().getRealPath(
                                    
    "/images/error.jpg"))));
                } 
    else {
                    
    this.setInputStream(new FileInputStream(new File(
                            ServletActionContext.getServletContext().getRealPath(
                                    
    "/images/ok.jpg"))));
                }

            } 
    catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    return "check";
        }

        
    public InputStream getInputStream() {
            
    return inputStream;
        }

        
    public void setInputStream(InputStream inputStream) {
            
    this.inputStream = inputStream;
        }

        
    public UserServerInter getUserServer() {
            
    return userServer;
        }

        
    public void setUserServer(UserServerInter userServer) {
            
    this.userServer = userServer;
        }

        
    public String getUserName() {
            
    return userName;
        }

        
    public void setUserName(String userName) {
            
    this.userName = userName;
        }

    }



    public interface UserServerInter {
        
    public boolean exist(String username);

    }


    public class UserServer extends HibernateDaoSupport implements UserServerInter{
        @SuppressWarnings(
    "unchecked")
        
    public boolean exist(String username) {
            System.out.println(username);
            List ls 
    = getHibernateTemplate().findByNamedQuery("userIsExist",  username);///這個地方使用mysql.hbm.xml中配置的HQL語句
            
    return ls.size() == 1 ? true : false;
        }

    }

    <%@ page language="java" import="java.util.*;" pageEncoding="utf-8"%>

    <%@ taglib prefix="s" uri="/struts-tags"%>
    <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        
    <head>
            
    <title>My JSP 'index.jsp' starting page</title>
        
    </head>

        
    <body>
            
    <script type="text/javascript">
        
    function changeValidateCode(obj) {
            obj.src = "checkUser.action?userName=" +document.getElementById("userName").value;
        }
    </script>
            
    <!--為異步提交定義需要的url-->
            
    <s:url id="userUrl" action="checkUser" />
            
    <s:textfield id="userName" name="userName" maxlength="10" theme="simple"
                onblur
    ="changeValidateCode(img)"/>
            
    <!--這個是指示器,當請求未完成時顯示這個圖片-->
            
    <img id="img" src="images/ok.jpg" align="center" />
            
    <!--這個是顯示信息的目標-->
            
    <span id="idInfo">請輸入你要注冊的用戶名</span>
        
    </body>
    </html>

    hibernate  mysql.hbm.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >

    <hibernate-mapping package="com.albertsong.bitrac.dao.query">
    <!-- 
        <sql-query name="userIsExist">
            <return alias="userIsExist" class="org.jinjin.trip.User" />
            select * from user u where u.username=?
        </sql-query>
         
    -->
        
    <query name="userIsExist">
        
    <![CDATA[
          from User where username=?
          
    ]]>
        
    </query>
    </hibernate-mapping>
    user.hbm.xml
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        
    <class name="org.jinjin.trip.mysql.User" table="user" catalog="trip">
            
    <id name="id" type="java.lang.String">
                
    <column name="id" />
                
    <generator class="uuid.hex" />
            
    </id>
            
    <property name="password" type="java.lang.String">
                
    <column name="password" length="50" />
            
    </property>
            
    <property name="username" type="java.lang.String">
                
    <column name="username" length="25" not-null="true" unique="true" />
            
    </property>
            
    <property name="email" type="java.lang.String">
                
    <column name="email" not-null="true" unique="true" />
            
    </property>
        
    </class>
    </hibernate-mapping>
    spring和hibernate的另外一種整合方式:通過hibernate的配置文件來整合,這樣要好的多:個人感覺
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
       
    <property name="configLocation" value="classpath:hibernate.cfg.xml" />
       
        
    </bean>  
    配置文件和以前一樣在,src目錄下,其實最后也到web-inf/class下面去了。這樣hibernate的配置文件就不用寫到spring的配置文件里了。挺好。


    天蒼蒼,野茫茫,風吹草底見牛羊

    posts - 80, comments - 24, trackbacks - 0, articles - 32

    Copyright © asdtiang

    asdtiang的博客 PaidMailz
    點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
    主站蜘蛛池模板: 国产无遮挡无码视频免费软件| ass亚洲**毛茸茸pics| 人人爽人人爽人人片A免费| 国产成人1024精品免费| 免费一级e一片在线播放| 久久亚洲精品国产精品| 免费人成黄页在线观看日本| 亚洲色图在线播放| 自拍偷自拍亚洲精品播放| 成人免费午夜在线观看| 亚洲性色精品一区二区在线| 无码少妇精品一区二区免费动态| 亚洲av无码国产精品夜色午夜 | 深夜A级毛片视频免费| 免费在线观看视频a| jzzjzz免费观看大片免费| 亚洲国产成人精品无码区在线观看| 亚洲色最新高清av网站| 国产一区在线观看免费| 国产vA免费精品高清在线观看| 亚洲国产成人久久综合碰碰动漫3d| 在线免费中文字幕| 亚洲国产精品无码久久98| 欧洲乱码伦视频免费| 亚洲中文无码永久免| 亚洲AV无码乱码在线观看| a级毛片毛片免费观看久潮| 亚洲黄黄黄网站在线观看| 日韩精品无码免费专区午夜不卡| 亚洲精品中文字幕麻豆| 国产免费观看a大片的网站| a级精品九九九大片免费看| 亚洲第一页中文字幕| 四虎永久免费网站免费观看| 97人妻精品全国免费视频| 亚洲一区中文字幕| 国产AⅤ无码专区亚洲AV | 中文字幕在线免费播放| a级亚洲片精品久久久久久久| 最好看的中文字幕2019免费| 婷婷亚洲综合五月天小说在线 |