servlet返回问题

Luffy0614 2008-10-28 04:45:07
<select name="csList" onChange="csChoose(document.myform.csList.options[document.myform.csList.selectedIndex].value)">
<option value="">===请选择=== </option>
<option value="朝阳区">朝阳区 </option>
<option value="二道区">二道区 </option>
<option value="高新区">高新区 </option>
<option value="经济开发区">经济开发区 </option>
<option value="宽城区">宽城区 </option>
<option value="绿园区">绿园区 </option>
<option value="南关区">南关区 </option>
<option value="双阳区">双阳区 </option>
<option value="汽车产业开发区">汽车产业开发区 </option>
<option value="净月区">净月区 </option>
</select>
<br>
<br>
<br>
<br>
<br>
<select name="csList2" onchange="window.location.href=this.options[this.selectedIndex].value">
<option selected value="">==请选择== </option>
</select>

我用servlet查询,返回结果,如返回 南关区 ,我如何让select标签中的值也显示为 南关区呢,
同理,二级菜单中有xxx社区, 返回结果中也有xxx社区,我又如何控制二级菜单中的显示为xxx社区呢,
求高人指点
...全文
247 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tubage408 2008-10-29
  • 打赏
  • 举报
回复
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>fillform</title>
<script type="text/javascript">
function fillForm(){
<c:if test="${requestScope.s1!=null}">
var s1 = document.getElementById("s1");
for(i=0;i<s1.options.length;i++){
if(s1.options[i].value=='${requestScope.s1}'){
s1.options[i].selected="true";
}
}
</c:if>
<c:if test="${requestScope.s2!=null}">
var s2 = document.getElementById("s2");
for(i=0;i<s2.options.length;i++){
if(s2.options[i].value=='${requestScope.s2}'){
s2.options[i].selected="true";
}
}
</c:if>
}
</script>
</head>
<body onload="fillForm()">
<form action="../servlet/FillFormServlet" method="post">
<select name="s1" id="s1">
<option value="朝阳区">朝阳区</option>
<option value="二道区">二道区</option>
<option value="高新区">高新区</option>
</select>
<select name="s2" id="s2">
<option value="21">21</option>
<option value="22">22</option>
<option value="23" selected="true" >23</option>
</select>
<input type="submit"/>
</form>
</body>
</html>
package com.ext;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FillFormServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String s1 = request.getParameter("s1");
String s2 = request.getParameter("s2");
request.setAttribute("s1",s1);
request.setAttribute("s2",s2);
request.getRequestDispatcher("/DynamicUpdate/fillform.jsp").forward(request, response);
}

}
接收中文要是乱码,再配个filter就ok了
fantianxia 2008-10-28
  • 打赏
  • 举报
回复
上面的js是可以实现的,还有一种方式:
在每个option中这样写(若servlet传来值赋值给变量param):
<option value="南关区" <%=param.equals("南关区")?"selected":""%> >南关区 </option>
w111222j 2008-10-28
  • 打赏
  • 举报
回复
上面的多了个双引号。用标签很方便的。而且很容易。
w111222j 2008-10-28
  • 打赏
  • 举报
回复


<option value="南关区 <c:if test="${你返回时放到reqest里的值 == '南关区'}">selected</c:if>">南关区 </option>
Luffy0614 2008-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhangchuanlove 的回复:]
从 servlet 中跳回来以后把值保存着,在页面最后可以用 js 判断取到的值和下拉列表中哪个相同就把下列列表中的那个选项 selected

假设 select 的 id 为 s1
<script>
var s1 = document.getElementById("s1");
var sValue = "${后台传过来的值}";
for(var i=0 ;i <s1.length;i++){
if(s1[i].value == sValue){
s1[i].selected = true;
break;
}
}
</script>
[/Quote]

只是问下对于中文这个方法如何,
Luffy0614 2008-10-28
  • 打赏
  • 举报
回复
只是问下对于中文这个方法如何,
tubage408 2008-10-28
  • 打赏
  • 举报
回复
ajax刷新页面当然不用考虑表单的回填问题,把select的值封装到个map里,在返回到前台,通过<script>
<c:if test="${requestScope.设置的属性!=null}"》
<c:forEach var="p" items="${requestScope.设置的属性}">
在这里你可以通过{p.value}就是map key所对应的值,通过结合js设置那个选中
</c:forEach>
<c:if>
</script>
accp206 2008-10-28
  • 打赏
  • 举报
回复
楼主可以参考2楼的思路。
如果嫌麻烦,就用struts吧,用它的html标签库,很方便就可以完成楼主目前需要的功能。呵呵。
lihan6415151528 2008-10-28
  • 打赏
  • 举报
回复
楼上的这个方法

<script>
var s1 = document.getElementById("s1");
var sValue = "${后台传过来的值}";
for(var i=0 ;i <s1.length;i++){
if(s1[i].value == sValue){
s1[i].selected = true;
break;
}
}
</script>


能解决上面那个
lihan6415151528 2008-10-28
  • 打赏
  • 举报
回复
js

设置

selected = true;

属性就可以了!
zhangchuanlove 2008-10-28
  • 打赏
  • 举报
回复
从 servlet 中跳回来以后把值保存着,在页面最后可以用 js 判断取到的值和下拉列表中哪个相同就把下列列表中的那个选项 selected

假设 select 的 id 为 s1
<script>
var s1 = document.getElementById("s1");
var sValue = "${后台传过来的值}";
for(var i=0 ;i<s1.length;i++){
if(s1[i].value == sValue){
s1[i].selected = true;
break;
}
}
</script>
chjx1982 2008-10-28
  • 打赏
  • 举报
回复
用AJAX。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧