在jsp中下拉框中如何获取数据库中的值

刚学java,今天遇到这样的问题2个表关联表1中有属性有城市和城市的代码(如 北京 1),表2中是城市的代码,在jsp下拉框中如何获取所有的城市,选择一个更新到表2中

但是还有一种方法通过js获取下拉框的值<select name="sel" onchange="check()"> -- 增加onchange事件<%while (rs.next()) {%><option value=""> -- 这里没有给选项赋值-- 改为,如:<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option> <%}%></select><script type="text/javascript">function check(){var id = document.getElementsByName("sel").value;-- 获取下拉框的值如:拼接url打开页面,var url = 'xxxx.do?id=' + id;//注,具体的url你要自己拼写,我这个是列子,不能用的方法1,在本窗口打开页面:window.location = url ;方法2,新窗口打开页面window.open(url)}</script> 追问: 我终于发现了,能读取数据,可是把读取的数据放入数据库中就有问题了,难道还要转码才行吗? 回答: 当然`~~ 追问: 页面编码是gb2312那我要怎样转码呢? 回答: 首先你要知道你的数据库的是什么编码的,你页面的编码要符合你数据库的编码,这样的转码才是正确的 追问: 现在我不是从页面读取数据了,而是直接在程序中测试Date.valueOf("1987-3-7")比如我用这样的方法把这个数据放到数据库中去就自动变成了1905-6-1了,感觉太怪了这个就和编码无关了 回答: 你具体的代码我也不知道,也不好给你说,给你个UTF-8转GB2312的代码吧private String utf8Togb2312(String str){StringBuffer sb = new StringBuffer();for(int i=0; i<str.length(); i++) {char c = str.charAt(i);switch (c) {case '+':sb.append(' ');break;case '%':try {sb.append((char)Integer.parseInt(str.substring(i+1,i+3),16));}catch (NumberFormatException e) {throw new IllegalArgumentException();}i += 2;break;default:sb.append(c);break;}}String result = sb.toString();String res=null;try{byte[] inputBytes = result.getBytes("8859_1");
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-09
使用iterator标签就可以了。
<seclect >

<logic:notEmpty name="catalog">
//id属性为catalog集合中的当前元素起一个别名
<logic:iterate id="li" name="catalog">
<option>
<bean:write name="li" property="name"/></option>
</logic:iterate>
</logic:notEmpty>

</seclect>
第2个回答  推荐于2016-09-30
在jsp中拼接select option标签。其中option标签是根据数据库查询结果循环拼接的。本回答被提问者采纳
相似回答