package com.wang.struts.util;
import java.util.List;
import com.wang.struts.dao.QxDao;
import com.wang.struts.dao.implement.FactoryDao;
import com.wang.struts.dao.implement.FwlxImplementDao;
import com.wang.struts.dao.implement.JdImplementDao;
import com.wang.struts.dao.implement.QxImplementDao;
import com.wang.struts.vo.CountJdVo;
import com.wang.struts.vo.FwlxVo;
import com.wang.struts.vo.JdVo;
import com.wang.struts.vo.QxVO;
public class JspUtil {
private static StringBuffer arrayStr = null;
private static StringBuffer qxOptionsStr = null;
private static StringBuffer fwlxOptionsStr = null;
public static StringBuffer getArrayStr() {// synchronized
if (arrayStr == null) {
arrayStr = new StringBuffer();
QxImplementDao qxProcess=FactoryDao.getFactoryQxImplementDao();//得到到对象
JdImplementDao jdProcess = FactoryDao.getFactoryJdImplementDao();
List qxList = qxProcess.getQxList();//调用dao,得到所有的区县
List jdList = jdProcess.getJDList();//得到所有的街道列表
List jdNum = jdProcess.getJDNums(); //根据区县得到所有的街道
int qxLength = qxList.size();
// int jdLength = jdList.size();
// int jdNumLength = jdNum.size();
int pointer = 0;// 指示
arrayStr.append("var v = new Array(" + qxLength + ");\n");// option的value
arrayStr.append("var n = new Array(" + qxLength + ");\n");// option的显示值
for (int i = 0; i < qxLength; i++) {
int qxid = ((QxVO) qxList.get(i)).getQxId();
arrayStr.append("v[" + qxid + "] = new Array(");
int l = 0;
try {
l = ((CountJdVo) jdNum.get(i)).getTotal();//根据区县Id得到对应的街道数量
} catch (Exception e) {
// e.printStackTrace();
System.out.println("========无此区县("
+ ((QxVO) qxList.get(i)).getQxId() + ")的街道资料========");
}
for (int j = 0; j < l; j++) {
int value = ((JdVo) jdList.get(pointer + j)).getJdid();
arrayStr.append("'" + value + "'");
if (j != l - 1) {
arrayStr.append(",");
}
}
arrayStr.append(");\n");
arrayStr.append("n[" + qxid + "] = new Array(");
for (int j = 0; j < l; j++) {
String name = ((JdVo) jdList.get(pointer + j)).getJd();//根据街道数量来遍历街道名称
arrayStr.append("'" + name + "'");
if (j != l - 1) {
arrayStr.append(",");
}
}
arrayStr.append(");\n");
pointer += l;
}
}
return arrayStr;
}
public static StringBuffer getQxOptions() {
if (qxOptionsStr == null) {
qxOptionsStr = new StringBuffer();
QxImplementDao qxProcess=FactoryDao.getFactoryQxImplementDao();
List qxList = qxProcess.getQxList();
for (int i = 1; i <= qxList.size(); i++) {
qxOptionsStr.append("<option value='"
+ ((QxVO) qxList.get(i - 1)).getQxId() + "'>"
+ ((QxVO) qxList.get(i - 1)).getQw() + "</option>\n");
}
}
return qxOptionsStr;
}
public static StringBuffer getFwlxOptions() {
if (fwlxOptionsStr == null) {
fwlxOptionsStr = new StringBuffer();
FwlxImplementDao fwlxProcess=FactoryDao.getFactoryFwlxImplementDao();
List fwlxList = fwlxProcess.getFwlxList();
for (int i = 1; i <= fwlxList.size(); i++) {
fwlxOptionsStr.append("<option value='"
+ ((FwlxVo) fwlxList.get(i - 1)).getFwid() + "'>"
+ ((FwlxVo) fwlxList.get(i - 1)).getFwlx()
+ "</option>\n");
}
}
return fwlxOptionsStr;
}
public static StringBuffer getFwxxStr(String fwxx){
StringBuffer fwxxRes = new StringBuffer();
if(fwxx.length()>35){
int rows = fwxx.length()/35 + 1;
for(int i=0;i<rows-1;i++){
fwxxRes.append(fwxx.subSequence(35*i,35*(i+1))+"<br/>");
}
fwxxRes.append(fwxx.subSequence(35*(rows-1), fwxx.length()-1));
} else {
fwxxRes.append(fwxx);
}
return fwxxRes;
}
}
在jsp 中的用<%=jspUtil.getArrayStr()%> j即可,其他方法一样
如:
<html>
<head>
<title>级联菜单</title>
</head>
<script language="javascript">
<!--
<!-- 取得javascript数组信息 -->
<%=JspUtil.getArrayStr()%>
function selectjd(){
var row = document.houseForm["fzxx.qxid"].value;//alert(row);
var col = v[row].length;//alert(col);
document.houseForm["fzxx.jdId"].length = 0;
document.houseForm["fzxx.jdId"].options[0] = new Option('不限--','0');
for(var i=0;i<col;i++) {
if(v[row][i]!=0){
document.houseForm["fzxx.jdId"].options[i+1] = new Option(n[row][i],v[row][i]);
}
}
}
-->
</script>
<body>
<table width="88%;" id="advSearch" style="border:solid 0px #000;display:none;">
<tr>
<td>区县:<br><br><br></td>
<td><select name="fzxx.qxid" onChange="selectjd()" style="width:80">
<option value="0">不限--</option>
<%=JspUtil.getQxOptions() %>
</select><br><br><br></td>
<td rowspan="6"> <br><br><br></td>
</tr>
<tr>
<td>街道:<br><br><br></td>
<td><select name="fzxx.jdId" style="width:80">
<option value="0">不限--</option>
</select><br><br><br></td>
</tr>
</table>
</body>
</html>
分享到:
相关推荐
省市联动,利用JS文件,不需要数据库,都写在JS文件里。具体怎么用在代码里一看就懂
大体思路是这样的:为了不让先前的页面刷新,我用iframe潜入了一个二级子页面,用来读取数据库中的数据,最后把想要的数据传递给父级页面,完成数据的选择和转移。 主要程序代码如下(部分代码有改动,但不影响功能...
本文实例讲述了javascript实现二级级联菜单的简单制作方法。分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <...
Asp+Ajax无限级联动下拉框菜单Access版 ASP仿Google输入框提示_自动完成功能 AJAX+ASP多级无限制级联菜单(地市版) ASP下结合AJAX实现输入框提示(自动完成) ASP 树形菜单TreeView 多样式版 jQuery实例_飞飞ajax带...
实战技巧:级联菜单 实战技巧:条目内容 实战技巧:级联下拉列表 使用responseXML处理返回的XML信息 实战技巧:获取元对象数据 实战技巧:处理列表数据 实战技巧:处理级联的数据 实战技巧:保存更新数据 在普通文本...
Coursera 约翰·霍普金斯大学 欢迎使用面向Web开发人员HTML,CSS和Javascript! 开发环境设置 ...使用Java脚本构建Web应用程序 文档对象模型操纵 Ajax简介 使用Ajax将餐厅网站与真实数据连接起来
本文实例讲述了js实现全国省市二级联动下拉选择菜单,分享给大家供大家参考。具体如下: 效果图: 具体代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb...
本文实例讲述了javascript实现省市区三级联动下拉框菜单代码。分享给大家供大家参考,具体如下 运行效果截图如下: 首先写一个静态的页面: <!DOCTYPE html> <html> <head> <title>QQ JS...
• 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 • 2.2.htm NaN与isNaN()的用法 • 2.3.htm Infinity值的用法 • 2.4.htm 转义字符的使用 ...
• 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 • 2.2.htm NaN与isNaN()的用法 • 2.3.htm Infinity值的用法 • 2.4.htm 转义字符的使用 ...
本文实例讲述了javascript实现省市区三级联动下拉框菜单代码,像平时购物选择地址时一样,通过选择的省动态加载城市列表,通过选择的城市动态加载县区列表,从而可以实现省市县的三级联动,下面使用原生的JavaScript...
本文实例讲述了javascript实现多级联动下拉菜单的方法。分享给大家供大家参考。具体实现方法如下: 代码如下: [removed] <!– Begin var arrItems1 = new Array(); var arrItemsGrp1 = new Array(); arrItems1[3...
省市二级联动下拉菜单,增加了区号输入.多组选项共用一组数据. 选择地区,可以获取区号,填写区号自动选取地区. 某些地市的区号收集中. 省份 选择城区 1)inti(0);findarea();”> 省份 选择城区 1)inti(1);find...
实现省市区三级下拉列表框,并且要实现联动效果。 方法一: 1.视图代码 <select class="prov" id="prov5" name="Province" data-code="@Model.Province"> </select>...select class="city" id="city5" ...
由于工作中涉及到生日编辑资料编辑,年月日用上面网址案例:bug提示: 编辑生日栏的【年】或者【月】,之前保存的具体的【日】就不显示啦,产品说不管编辑哪个数据,其他数据不变; 然后自己改了一下代码: ...
代码如下: <!DOCTYPE HTML PUBLIC “-//W3C//DTD ... <head> <title>.../title>... [removed] function loadXML(){ var xmlDoc; try{ //IE xmlDoc=new ActiveXObject(“Microsoft.XMLDOM”
级联菜单 ; charset=gb2312"> <!-- body { margin-left: 0px; margin-top: 0px; background-image: url(Images/bg.gif); } .style1 {color: #FFFFFF} .style2 {color: #a2bcc5} --> ...
{1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...
使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的...