ajax

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执行到此了");
 }

 
 
Action类:
 
package com.ext.portlet.song.action;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ext.portlet.song.model.FormNameBean80425986;
import com.ext.portlet.song.service.FormNameBean80425986LocalServiceUtil;
import com.liferay.portal.struts.AJAXAction;
public class AjaxAction extends 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);
 }
 @Override
 public String getText(ActionMapping arg0, ActionForm arg1,
   HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
  // TODO Auto-generated method stub
  return null;
 }
}
原文地址:https://www.cnblogs.com/a892647300/p/2970735.html