一般的,如果只有二级级连,那么就在第一个的 onchange() 事件中,触发一个行为,把这个请求提交一次,在后台,根据输入的条件,查询出来第二个菜单的内容。
解决方案 »
- java web显示硬盘上的pdf的问题
- hibernate 怎么控制 级联查询?跪求指点~~~~
- SSH整合dwr出现问题,
- 怎样在MyEclipse下使用Java实现数据库中导入导出Excel表
- 求高手解释下代码
- JSP页面之间参数如何传递?
- 使用Url Rewrite Filter实现页面伪静态化的一个小问题 ????
- web service调用ejb查询数据很慢,有办法解决么?
- session bean问题
- kafka Java API 可以写入数据,但是消费不到数据是为什么?
- 『『『请教高手一个问题!!!』』』
- tomcat 启动时报错:don't found java.library.path
http://jfish.blog.ccidnet.com/blog/ccid/do_showone/tid_18378.html
import static org.caexpo.common.hibernate.HibernateSessionFactory.currentSession;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Set;import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;import org.apache.log4j.Logger;
import org.caexpo.nanbo.model.TCountry;
import org.caexpo.nanbo.model.TProvince;
import org.hibernate.Query;
import org.hibernate.Session;
public class CPTag extends TagSupport
{
private String param1;
private String param2;
private String form;
private static Logger log = Logger.getLogger(CPTag.class.getName()); public int doStartTag() throws JspException
{
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
String szCID = (String)request.getAttribute(param1);
String szPID = (String)request.getAttribute(param2);
try
{
JspWriter out = pageContext.getOut();
//jspwriter是一个隐含对象,用于向jsp网页输出内容。输出的目标由
// pagecontext.getout提供
out.print(writeC(szCID,szPID).toString()); //向jsp网页上下文输出
}
catch (IOException ioException)
{
throw new JspException(ioException.getMessage());
}
//catch
return SKIP_BODY;
} private StringBuffer writeC(String szCID, String szPID)
{
TProvince province = null;
TCountry country = null;
Set set = null;
Session session =currentSession(); Query query =session.createQuery("from TCountry as a order by a.countryid");
List listC =query.list();
closeSession();
StringBuffer sb = new StringBuffer();
sb.append("<table border='0'>\n");
sb.append("<tr>\n");
sb.append("<td>\n");
sb.append("<select name=\""+param1+"\" id=\""+param1+"\" style=\"width:150\" onChange=\"redirect(this.options.selectedIndex)\" >\n");
sb.append("<option value=\"0\">--请选择--</option>\n");
if(listC != null)
{
for(Object c : listC)
{
country = (TCountry)c;
if(szCID != null && !szCID.trim().equals("0") && szCID.trim().equals(Long.toString(country.getCountryid()).trim()))
{
sb.append("<option value=\""+((TCountry)c).getCountryid()+"\" selected>"+((TCountry)c).getCountryname()+"</option>\n");
}
else
{
sb.append("<option value=\""+((TCountry)c).getCountryid()+"\">"+((TCountry)c).getCountryname()+"</option>\n");
}
}
}
sb.append("</select> \n");
sb.append("</td>\n");
sb.append("<td>\n");
sb.append("<select name=\""+param2+"\" id=\""+param2+"\" style=\"width:100;display:none\">\n");
sb.append("<option value=\"0\">--请选择省份--</option>\n");
if(szCID != null && !szCID.equals("0") && szPID != null && !szPID.equals("0"))
{
for(int i = 0; i < listC.size(); i++)
{
country = (TCountry)listC.get(i);
if(Long.toString(country.getCountryid()).trim().equals(szCID.trim()))
{
set = ((TCountry)listC.get(i)).getProvinceSet();
for(Iterator it = set.iterator(); it.hasNext();)
{
province = (TProvince)it.next();
if(Long.toString(province.getProvinceid()).trim().equals(szPID.trim()))
{
sb.append("<option value=\""+province.getProvinceid()+"\" selected>"+province.getProvincename()+"</option>\n");
}
else
{
sb.append("<option value=\""+province.getProvinceid()+"\">"+province.getProvincename()+"</option>\n");
}
}
}
}
}
sb.append("</select> \n");
sb.append("</td>\n");
sb.append("</tr>\n");
sb.append("</table>\n");
sb.append("<div id=\"scriptDiv\" style=\"display:none\">");
sb.append("<script language=\"javascript\" type=\"text/javascript\">\n");
sb.append("<!--\n");
sb.append("var groups = document."+form+"."+param1+".options.length;\n");
sb.append("var group = new Array(groups);\n");
sb.append("for (i = 0; i < groups; i++)\n");
sb.append("{\n");
sb.append(" group[i]=new Array();\n");
sb.append("}\n"); sb.append("group[0][0]=new Option(\"请选择\",\"0\");\n");
if(listC != null)
{
for(int i = 1; i <= listC.size(); i++)
{
sb.append("group["+i+"][0]=new Option(\"请选择\",\"0\");\n");
int j = 1;
set = ((TCountry)listC.get(i-1)).getProvinceSet();
for(Iterator it = set.iterator(); it.hasNext();)
{
province = (TProvince)it.next();
sb.append("group["+i+"]["+j+"]=new Option(\""+province.getProvincename()+"\",\""+province.getProvinceid()+"\");\n");
j++;
}
}
} sb.append("var temp=document."+form+"."+param2+";\n");
sb.append("function redirect(x)\n");
sb.append("{\n");
sb.append(" for (m=temp.options.length-1;m>0;m--)\n");
sb.append(" {\n");
sb.append(" temp.options[m]=null;\n");
sb.append(" }\n");
sb.append(" for (i=0;i<group[x].length;i++)\n");
sb.append(" {\n");
sb.append(" temp.options[i]=new Option(group[x][i].text,group[x][i].value);\n");
sb.append(" }\n");
sb.append(" if(parseInt(temp.options.length) > 1)\n");
sb.append(" {\n");
sb.append(" document.getElementById(\""+param2+"\").style.display=\"block\";\n");
sb.append(" }else {\n");
sb.append(" document.getElementById(\""+param2+"\").style.display='none';\n");
sb.append(" }\n");
sb.append("} \n");
if(szCID != null && szPID == null)
{
sb.append(" for (i=0;i<group["+szCID+"].length;i++)\n");
sb.append(" {\n");
sb.append(" temp.options[i]=new Option(group["+szCID+"][i].text,group["+szCID+"][i].value);\n");
sb.append(" }\n");
}
sb.append(" if(parseInt(temp.options.length) > 1)\n");
sb.append(" {\n");
sb.append(" document.getElementById(\""+param2+"\").style.display=\"block\";\n");
sb.append(" }\n");
//sb.append("redirect("+szCID.trim()+")\n");
sb.append("//-->\n");
sb.append("</script> \n");
sb.append("</div>");
return sb;
}
public void setParam1(String param1) {
this.param1 = param1;
} public void setParam2(String param2) {
this.param2 = param2;
} public void setForm(String form) {
this.form = form;
}}
<tr>
<td>
<select name="countryId" id="countryId" style="width:150" onChange="redirect(this.options.selectedIndex)" >
<option value="0">--请选择--</option>
<option value="1">中国</option>
<option value="2">文莱</option>
<option value="3">柬埔寨</option>
<option value="4">印尼</option>
<option value="5">
老挝</option>
<option value="6">马来西亚</option>
<option value="7">缅甸</option>
<option value="8">菲律宾</option>
<option value="9">新加坡</option>
<option value="10">泰国</option>
<option value="11">越南</option>
<option value="2001">china</option>
<option value="2002">Brunei
</option>
<option value="2003">Cambodia
</option>
<option value="2004">Indonesia
</option>
<option value="2005">Laos Malaysia</option>
<option value="2006">Malaysia
</option>
<option value="2007">Myanmar
</option>
<option value="2008">Philippines</option>
<option value="2009">Singapore
</option>
<option value="2010">Thailand
</option>
<option value="2011">Vietnam
</option>
</select>
</td>
<td>
<select name="provinceId" id="provinceId" style="width:100;display:none">
<option value="0">--请选择省份--</option>
</select>
</td>
</tr>
</table>
<div id="scriptDiv" style="display:none"><script language="javascript" type="text/javascript">
<!--
var groups = document.registerForm.countryId.options.length;
var group = new Array(groups);
for (i = 0; i < groups; i++)
{
group[i]=new Array();
}
group[0][0]=new Option("请选择","0");
group[1][0]=new Option("请选择","0");
group[1][1]=new Option("北京","1");
group[1][2]=new Option("上海","2");
group[1][3]=new Option("广东","3");
group[1][4]=new Option("广西","4");
group[1][5]=new Option("安徽","5");
group[1][6]=new Option("山东","6");
group[1][7]=new Option("福建","7");
group[1][8]=new Option("甘肃","8");
group[1][9]=new Option("贵州","9");
group[1][10]=new Option("海南","10");
group[1][11]=new Option("河北","11");
group[1][12]=new Option("河南","12");
group[1][13]=new Option("黑龙江","13");
group[1][14]=new Option("吉林","14");
group[1][15]=new Option("江苏","15");
group[1][16]=new Option("浙江","16");
group[1][17]=new Option("江西","17");
group[1][18]=new Option("辽宁","18");
group[1][19]=new Option("内蒙古","19");
group[1][20]=new Option("宁夏","20");
group[1][21]=new Option("青海","21");
group[1][22]=new Option("山西","22");
group[1][23]=new Option("陕西","23");
group[1][24]=new Option("四川","24");
group[1][25]=new Option("天津","25");
group[1][26]=new Option("西藏","26");
group[1][27]=new Option("新疆","27");
group[1][28]=new Option("云南","28");
group[1][29]=new Option("重庆","29");
group[1][30]=new Option("湖南","30");
group[1][31]=new Option("湖北","31");
group[1][32]=new Option("香港","32");
group[1][33]=new Option("澳门","33");
group[1][34]=new Option("台湾","34");
group[2][0]=new Option("请选择","0");
group[3][0]=new Option("请选择","0");
group[4][0]=new Option("请选择","0");
group[5][0]=new Option("请选择","0");
group[6][0]=new Option("请选择","0");
group[7][0]=new Option("请选择","0");
group[8][0]=new Option("请选择","0");
group[9][0]=new Option("请选择","0");
group[10][0]=new Option("请选择","0");
group[11][0]=new Option("请选择","0");
group[12][0]=new Option("请选择","0");
group[13][0]=new Option("请选择","0");
group[14][0]=new Option("请选择","0");
group[15][0]=new Option("请选择","0");
group[16][0]=new Option("请选择","0");
group[17][0]=new Option("请选择","0");
group[18][0]=new Option("请选择","0");
group[19][0]=new Option("请选择","0");
group[20][0]=new Option("请选择","0");
group[21][0]=new Option("请选择","0");
group[22][0]=new Option("请选择","0");
var temp=document.registerForm.provinceId;
function redirect(x)
{
for (m=temp.options.length-1;m>0;m--)
{
temp.options[m]=null;
}
for (i=0;i<group[x].length;i++)
{
temp.options[i]=new Option(group[x][i].text,group[x][i].value);
}
if(parseInt(temp.options.length) > 1)
{
document.getElementById("provinceId").style.display="block";
}else {
document.getElementById("provinceId").style.display='none';
}
}
if(parseInt(temp.options.length) > 1)
{
document.getElementById("provinceId").style.display="block";
}
//-->
</script>
我的环境是 struts 下做的
??
那位兄弟 有好的解决方案??
谢谢 盼望中
<!--
function onChange()
{
thisForm = document.boothForm;
thisForm.action="/expo/boothSearch.do";
thisForm.submit();
}
//-->
</script><html:select property="expohallid" style="width:200;" onchange="onChange()">
<html:option value="0">请选择</html:option>
<html:optionsCollection name="expoHallList" value="expohallid" label="boothname" />
</html:select>html:optionsCollection中是Java搜索出来, set到expoHallList中去的