ajax的基本原理:Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。 XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。
表单的验证:
//Ajx实现异步示例,blur实现失去焦点触发
jQuery('#<portlet:namespace/>formname').blur(<portlet:namespace/>check);
function <portlet:namespace/>check(){
alert("开始执行Ajax");
//判断用户是否存在
var formname = jQuery("#<portlet:namespace/>formname").val();
if(formname==""){
jQuery('#<portlet:namespace/>msgName').html('表单名称不能为空');
jQuery('#<portlet:namespace/>msgName').css("color","red");
jQuery('#<portlet:namespace/>msgName').css("font-size","2em");
//通过id使save按钮disabled
jQuery('#<portlet:namespace/>save').attr("disabled","disabled");
}else{
//alert("formName======"+formname);
//执行action类
var urlimp = '<portlet:renderURL windowState="<%= LiferayWindowState.EXCLUSIVE.toString() %>"><portlet:param name="struts_action" value="/ext/forms/ajax" /></portlet:renderURL>';
jQuery.ajax({
type: "POST",
url: urlimp,
data: "cmd=check&formname="+formname,
success: function(msg){
alert( "Data Saved: " + msg );
if(msg=='exist'){
//已存在(控制css)
jQuery('#<portlet:namespace/>save').attr("disabled","disabled");
alert("disable");
jQuery('#<portlet:namespace/>msgName').html('该表单名已存在');
alert("disable1");
jQuery('#<portlet:namespace/>msgName').css("color","red");
jQuery('#<portlet:namespace/>msgName').css("font-size","2em");
//保存按钮不可用
// jQuery('#<portlet:namespace/>save').attr("disabled","disabled");
}
if(msg=='unexist'){
//通过
jQuery('#<portlet:namespace/>msgName').html('该表单名可用');
jQuery('#<portlet:namespace/>msgName').css("color","green");
jQuery('#<portlet:namespace/>msgName').css("font-size","2em");
//保存按钮可用
jQuery('#<portlet:namespace/>save').removeAttr("disabled");
}
}
});
}
//alert("haha执行到此了");
}
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ext.portlet.song.service.FormNameBean80425986LocalServiceUtil;
import com.liferay.portal.struts.AJAXAction;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm arg1,
HttpServletRequest requst, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
System.out.println("AjaxxAction.execute()");
String formname = requst.getParameter("formname");
System.out.println("formName++++++++++++"+formname);
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//通过表单名查找
List list=FormNameBean80425986LocalServiceUtil.findByformname(formname);
if(list==null||list.isEmpty())
{
out.print("unexist");
return null;
}else{
FormNameBean80425986 formbean=(FormNameBean80425986) list.get(0);
out.print("exist");
}
System.out.println("list"+list.size());
//得到list的第一个值
//System.out.println("formbean"+formbean.getFormname()+"_________________________");
//FormNameBean80425986 formbean = FormNameBean80425986LocalServiceUtil.findByformname(formname);
out.flush();
out.close();
return null;
//return super.execute(arg0, arg1, arg2, arg3);
}
public String getText(ActionMapping arg0, ActionForm arg1,
HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
// TODO Auto-generated method stub
return null;
}