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

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

          Posted on 2010-04-12 13:07 asdtiang 閱讀(1130) 評論(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美元)
          主站蜘蛛池模板: 冕宁县| 安远县| 梁河县| 澄迈县| 珲春市| 潜江市| 梓潼县| 汕头市| 闽清县| 四川省| 眉山市| 巢湖市| 柳林县| 永川市| 洞头县| 福州市| 阿瓦提县| 巴中市| 霍林郭勒市| 云和县| 博野县| 高安市| 横山县| 万荣县| 广饶县| 本溪| 新晃| 房产| 建昌县| 夏邑县| 连山| 固原市| 苗栗市| 崇信县| 阿瓦提县| 广西| 临沧市| 宁国市| 长治市| 万宁市| 岳西县|