Hibernate を使用して Struts 2 で Web アプリケーションを開発しています。
しかし、サーバーを起動してWebサイトをロードすると、実行中のロードメソッドが呼び出されるという問題があります。"Phương"
しかし、 I get "PH??NG"
But in JSP page still displayの代わりに UTF-8 を読み込めません"Phương"
。そのため、SQL クエリを実行すると (from Posts WHERE topics like '%PH??NG PHÁP GIÁO D?C TR?%'
であるため、データベースにクエリを実行できません。
ここに私のアクションクラス:
public class PostsAction extends ActionSupport {
private List<HomeTopic> homeTopics = new ArrayList<HomeTopic>();
public List<HomeTopic> getHomeTopics() {
return homeTopics;
}
public void setHomeTopics(List<HomeTopic> homeTopics) {
this.homeTopics = homeTopics;
}
public void callHomeTopics(){
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction trans = session.beginTransaction();
String[] list = {"NEW – TIN TỨC TRẺ","Khu Vui Chơi Cho Trẻ","PHƯƠNG PHÁP GIÁO DỤC TRẺ","KỸ NĂNG – KINH NGHIỆM","Phòng Bệnh","Tập Tô Màu"};
for (int i = 0; i < list.length; i++) {
getTopics(session, trans, list[i]);
}
trans.commit();
session.close();
}
public void getTopics(Session session, Transaction trans, String type) {
String hql = "from Posts WHERE topics like '%" + type + "%'";
System.out.println("HQL: " + hql);
Query query = session.createQuery(hql);
query.setMaxResults(3);
List<Posts> t = (ArrayList<Posts>) query.list();
HomeTopic h = new HomeTopic(type, t);
System.out.println("List topics: " + type + " " + t);
homeTopics.add(h);
session.flush();
}
HomeTopics.java
クラス:
public class HomeTopic {
private String nameTopic;
private List<Posts> postList;
public List<Posts> getPostList() {
return postList;
}
public void setPostList(List<Posts> postList) {
this.postList = postList;
}
public HomeTopic(String nameTopic, List<Posts> postList) {
this.nameTopic = nameTopic;
this.postList = postList;
}
public HomeTopic() {
}
@Override
public String toString() {
return "HomeTopic{" + "nameTopic=" + nameTopic + ", postList=" + postList + '}';
}
public String getNameTopic() {
return nameTopic;
}
public void setNameTopic(String nameTopic) {
this.nameTopic = nameTopic;
}
}
テストするメインメソッドを書くと、まだUTF-8が表示されます。しかし、サーバーを起動してブラウザでメソッドを呼び出すたびにcallHomeTopics()
、テキストは"PH??NG PHÁP GIÁO D?C TR?"
.
しかし、JSPページではまだ表示されます"Phương Pháp Giáo Dục Trẻ"
。HQL クエリ以外はすべて問題ありません。