AJAX 3級連動
まずACTIONコードを見てみます
ここはしばしショーのみ
OK私のドアはJSPを見ています
JSはツール類が長すぎて投稿できません
大きなかばんが届いたら、必要な友达を降ろしてもいいです.
prototype.rar
ここはしばしショーのみ
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.baidu.struts.action;
import java.io.IOException;
import java.util.HashMap;
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 org.apache.struts.actions.DispatchAction;
import org.json.JSONArray;
import org.json.JSONObject;
import com.baidu.dao.DAO;
import com.baidu.struts.form.TestForm;
/**
* MyEclipse Struts
* Creation date: 04-21-2008
*
* XDoclet definition:
* @struts.action path="/test" name="testForm" input="/form/test.jsp" scope="request" validate="true"
*/
public class TestAction extends DispatchAction {
public ActionForward show(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
DAO dao=new DAO();
request.setAttribute("gs",dao.findByGs());
// request.setAttribute("bm", dao.findByBm());
// request.setAttribute("emp", dao.findByEmp());
return mapping.findForward("index");
}
public ActionForward ajax(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
response.setHeader("Charset","UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
String selectValue = request.getParameter("selectValue");
Integer id=Integer.parseInt(selectValue);
DAO dao=new DAO();
List list=dao.findByBm(id);
JSONArray jsonArray = new JSONArray();
for(int i = 0; i < list.size(); i++ ){
HashMap map = (HashMap)list.get(i);
JSONObject jsonObject = new JSONObject(map);
jsonArray.add(jsonObject);
}
try {
response.getWriter().print(jsonArray);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
}
return null;
}
public ActionForward ajax1(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
response.setHeader("Charset","UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
String selectValue = request.getParameter("selectValue");
Integer id=Integer.parseInt(selectValue);
System.out.println(id);
DAO dao=new DAO();
List list=dao.findByEmp(id);
JSONArray jsonArray = new JSONArray();
for(int i = 0; i < list.size(); i++ ){
HashMap map = (HashMap)list.get(i);
JSONObject jsonObject = new JSONObject(map);
jsonArray.add(jsonObject);
}
try {
response.getWriter().print(jsonArray);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
}
return null;
}
public ActionForward show2(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
return null;
}
}
OK私のドアはJSPを見ています
<%@ page language="java" pageEncoding="gbk"%>
<jsp:directive.page import="java.util.List"/>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<script type="text/javascript"
src="<%=request.getContextPath()%>/prototype.js"></script>
<script language="javascript">
function sendRequest(selectValue){
var pars = 'selectValue=' + selectValue;
myAjax = new Ajax.Request(
'<%=request.getContextPath()%>/test.do?method=ajax',
{method: 'get', requestHeaders:["If-Modified-Since","0"], parameters: pars, onComplete: showResponse }
);
}
function showResponse(response) {
var json = eval('('+response.responseText+')');
//alert(json)
var selectObj = document.getElementById("dealersId");
selectObj.options.length = 1;
for(var i=0; i<json.length; i++){
selectObj[i+1] = new Option(json[i].name,json[i].id);
}
}
function sendRequest1(selectValue){
var pars = 'selectValue=' + selectValue;
myAjax = new Ajax.Request(
'<%=request.getContextPath()%>/test.do?method=ajax1',
{method: 'get', requestHeaders:["If-Modified-Since","0"], parameters: pars, onComplete: showResponse1 }
);
}
function showResponse1(response) {
var json = eval('('+response.responseText+')');
//alert(json)
var selectObj = document.getElementById("dealersId1");
selectObj.options.length = 1;
for(var i=0; i<json.length; i++){
selectObj[i+1] = new Option(json[i].name,json[i].id);
}
}
</script>
<BODY>
<html:form action="/test.do?method=show">
<html:select property="id" onchange="javascript:sendRequest(this.value);act='';">
<html:option value=""> </html:option>
<html:options collection="gs" property="id" labelProperty="name"/>
</html:select>
<br>
<html:select property="pid" styleId="dealersId" onchange="javascript:sendRequest1(this.value);act='';">
<html:option value=""> </html:option>
</html:select>
</br>
<html:select property="pid1" styleId="dealersId1">
<html:option value=""> </html:option>
</html:select>
</html:form>
</BODY>
JSはツール類が長すぎて投稿できません
大きなかばんが届いたら、必要な友达を降ろしてもいいです.
prototype.rar