Jquery、ajaxとstruts 2+Hybernateクエリデータベースはユーザー名が存在するかどうかを確認します.
<div class=「itey-blog-content-contain」style=「font-size:14 px」>
最近ajaxの非同期呼出しとリフレッシュ技術を勉強しました.実践しました.他の人の方法を参考にして、自分の考えに参加したら、次のようなものがあります.
まずフロントのjspページです.
jqueryのpost方法についてはこれを見に行ってもいいです.詳しく書きました.http://www.itivy.com/jquery/archive/2011/7/6/jquery-get-post-getjson-ajax.html
最近ajaxの非同期呼出しとリフレッシュ技術を勉強しました.実践しました.他の人の方法を参考にして、自分の考えに参加したら、次のようなものがあります.
まずフロントのjspページです.
jqueryのpost方法についてはこれを見に行ってもいいです.詳しく書きました.http://www.itivy.com/jquery/archive/2011/7/6/jquery-get-post-getjson-ajax.html
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'register.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="jquery-1.9.1.js"></script>// Jquery
<script type="text/javascript">
jQuery(function()
{
$("#username").blur(function()// blur
{
var username= $.trim($("#username").val());
$.post("checkusername.action",{username:username},function(date,state)
{
if(date.result=="ok")
{
$("#span1").html("<font color="red"> </font>");
document.getElementById("submit").removeAttribute("disabled");
}else
{
$("#span1").html("<font color="red"> </font>");
document.getElementById("submit").disabled = "true";
}
//alert(date.result); ,
return false;},'json');
});
});
</script>
</head>
<body>
<form action="savePerson.action" method="post" >
username:<input type="text" name="username" size="20" id="username">
<span id="span1"></span>
<br>
password:<input type="password" name="password" size="20"><br>
age: <input type="text" name="age" size="20"><br>
<input type="submit" value=" " id="submit" disabled="disabled">
</form>
</body>
</html>
struts 2のフレームを使っていますので、struts 2には下記のコードが付けられています.データは送迎で送りますので、extens="json-default"と書きます.<package name="strutsjson" extends="json-default">
<action name="checkusername"
class="com.liumin.action.CheckUsername" method="CheckPerson">
<result type="json"></result>
</action>
</package>
actionのコードは以下の通りです.package com.liumin.action;
import java.util.List;
import com.liumin.model.Person;
import com.liumin.service.impl.CheckService;
import com.opensymphony.xwork2.ActionSupport;
public class CheckUsername extends ActionSupport
{
private String username;// username
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
private String result;
public String getResult()
{
return result;
}
public void setResult(String result)
{
this.result = result;
}
public String CheckPerson() throws Exception
{
CheckService checkService = new CheckService();
String str="select * from person where username='"+username+"'" ;// sql
List<Person> list=(List<Person>)checkService.getUser(str);//
if(list.isEmpty())// , list ?
{
this.result = "ok";
}else
{
this.result = "no";
}
return SUCCESS;
}
}
serviceとdao層の私が書いたのは、package com.liumin.service.impl;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.liumin.model.Person;
import com.liumin.util.HibernateUtil;
public class CheckService
{
@SuppressWarnings("unchecked")
public List<Person> getUser(String str)
{
Session session = HibernateUtil.openSession();
Transaction tx = session.beginTransaction();
List<Person> list = null;
try
{
list = session.createSQLQuery(str).addEntity(Person.class).list();//
tx.commit();
}
catch (Exception e)
{
if (null != tx)
{
tx.rollback();
}
}
finally
{
HibernateUtil.close(session);
}
return list;
}
}
utilの中のデータは以下の通りです.package com.liumin.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil
{
private static SessionFactory sessionFactory;
static
{
try
{
sessionFactory = new Configuration().configure().buildSessionFactory();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
public static Session openSession()
{
Session session = sessionFactory.openSession();
return session;
}
public static void close(Session session)
{
if(null != session)
{
session.close();
}
}
}
Hbernateのcfgとhbmコードは貼り出さなくてもいいです.