SSHとAjaxの統合


統合手順のまとめ:
1,actionでは、request.get Parameeter(*),xを利用して、jspページからのパラメータ2,jspページに「%@taglib uri=」を追加します。http://struts.apache.org/tags-bean「prefix=」bean"%の後パラメータを取得します。使用方法:$hibernateでは、ペアのマルチ関係では、hibernateはデフォルトでは怠惰な初期化(lazy=true)です。そうすると、一方を検索すると、多くの方を連結しません。このように単一の方はクラスに保存されている多くの方の属性を使用することができません。使用したいなら、多くの方にlazy=falseを追加しなければなりません。  lazy=「false」の多くの方が外キーで片方のメインキーを指している場合:デフォルトの4、jspページで国際化方法を実現します。
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
	<html:messages id="error" name="errorMessages">
		<font color="red">${error}</font>
	</html:messages>	  name        
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
	<bean:message key="login.title"/>	key        
5ページコードの問題:通常はフィルタを書くことによって解決できますが、フィルタを書いた後、ページの文字化けが発生する可能性があります。urlは中国語の伝送に対応していません。通常は中国語を送る時、postメソッドを使ってください。getを使うなら、tomcatでconf.server.xmlファイルの中に修正ポートを見つけられるところにIEncoding=「コード方式」「いいです6、カスケード削除:Aテーブルを削除したいのですが、Bテーブルの外キーはAテーブルを指しています。関係維持はBテーブルの中にあります。この時Aテーブルのデータを削除するには、まずBテーブルの中のAテーブルに向かうデータを調べてから、Bテーブルの外鍵を空にして、Aテーブルのデータを削除します。両方の表が関係を維持しているなら、カスケードを書いてもいいです。ヒベルナ配置ファイルを通じて自動的に表を作成します。(1)本体を作成し、詳細なxml AVファイルと(2)ヒベルナ配置ファイルに<を追加します。この属性は自動的にsql文を生成できます。自動作成表<property name=“hbm 2 ddl.atot”>create>(3)はメール方法で実行します。読み込むとsql文が生成されます。8,PowerDesignerを利用してコードを通じて関係図を作成します。file->reverse enginer->datebase->ポップアップダイアログで名前を入力して、データベースを選択して、追加を確定することをクリックして、確定後に生産図をクリックします。9,以下のコードは有効です。ページごとにすべてのオブジェクトを検索するテンプレートを実現しました。  //  汎型を定義する
public <T> List<T> selectAllObject(Class<T> clazz,Page page) {
		String hql0 = "select count(*) from " + clazz.getSimpleName();
		String hql = "from " + clazz.getSimpleName();
		List<T> Objects = new ArrayList<T>();
		//  query()       
		for(Object obj : this.query(hql0, null, hql, null, page)){
			Objects.add((T) obj);
		}
		return Objects;
}
オブジェクトまたはオブジェクトの属性で改ページクエリを実現します。/**Hbernature Callback()メソッドによって伝えられたパラメータはfinalでなければなりません。*final T exampleEntity:転送されたエンティティオブジェクトです。     final String propertyName:エンティティオブジェクトの属性名*final Object startData、final Object endData:時間で照会する場合は必要です。      final Page page:改ページ時は*/
import org.hibernate.Criteria;
	import org.hibernate.HibernateException;
	import org.hibernate.Query;
	import org.hibernate.Session;
	import org.hibernate.criterion.Criterion;
	import org.hibernate.criterion.Example;
	import org.hibernate.criterion.Expression;
	import org.springframework.orm.hibernate3.HibernateCallback;
	import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

	protected <T> List<T> selectByExampleEntity(final T exampleEntity,final String propertyName,
	  	final Object startData,final Object endData,final Page page) {
		Object object = getHibernateTemplate().executeFind(new HibernateCallback() {
			public Object doInHibernate(Session session) throws HibernateException, SQLException {
				Example example = Example.create(exampleEntity); //      Example
					//  session    
				Criteria criteria = session.createCriteria(exampleEntity.getClass());
						//     3            
						//propertyName            ,             
				if(propertyName != null && startDate != null && endDate != null){
					Criterion c = Expression.between(propertyName, startDate, endDate);
					criteria.add((Criterion) c);
				}
				criteria.add(example);
				page.setOrderCount(new Long(criteria.list().size()));
				criteria.setFirstResult((page.getPageNumber()-1)*page.getMax());
				criteria.setMaxResults(page.getMax());
				return criteria.list();
			}
		});
		return (List<T>) object;
	}
10,hibernate.hbm.xmlファイル構成でlazy="false"を指定すると、そのオブジェクトを照会する際にその関係先を指定することができます。   全部調べてみたら、全体に影響を与えるだけです。ある状況で関係相手を調べたいだけかもしれません。いらない時は。   クエリ時間とメモリ空間が無駄になりました。影響範囲を縮小するために、lazy=「false」を指定しなくてもいいです。web.xmlだけです。   ファイルにはスプリングフィルタが配置されています。これにより、事務が終了しても、Sessionが一次接続の範囲内でトランザクションを拡大することができます。   シャットダウンされ、リレーション属性を取得するのと同様に、以下のようにして使用することができます。  
<filter>
		 <filter-name>OpenSessionInViewFilter</filter-name>
		  	 <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		  <init-param>
		  	<param-name>singleSession</param-name>
		  	<param-value>true</param-value>
		  </init-param>
		  <init-param>
		  		<param-name>sessionFactoryBeanName</param-name>
		  		<!--   spring.xml  id -->
		  		<param-value>sessionFactory</param-value>
		  </init-param>
		  </filter>
		  <filter-mapping>
		  	<filter-name>OpenSessionInViewFilter</filter-name>
		  	<!--           (    ) -->
		  	<url-pattern>*.do</url-pattern>
		  </filter-mapping>
11,Oracleデータベース:自分のコンピュータ名を修正すると、Oracleホームページにログインできなくなるなどの他の状況が発生します。あなたのデータベースのインストールディレクトリを見つけました。D:\.\oracle\product\10.2.0\server\NETWORK\ADMINの下に二つのファイルがあります。listener.oraとtsnsnames.oraを開けて、その中のホスト名を現在のホスト名に変更すればOKです。二つのテーブルの列が同じ時に(個数、名前、制約)データを2つのセッションに追加できます。(重複を除く)union allはすべてのeg:select idを表示し、name from student 1 union(all)selectid,name from student 2を表示します。12、日付と文字列の間で相互に変換します。
Date d = new SimpleDateFormat("yyyy-mm-dd").parse("1234-25-30");
	System.out.println(d);
	String str = new SimpleDateFormat("yyyy-mm-dd").format(d);
	System.out.print(str);